Intereting Posts
Способ получить разблокировку в андроиде? Возможно ли иметь и кнопку возврата и меню на панели инструментов Android? Android Studio – Gradle – создание нескольких проектов с вложенными зависимостями Поддерживает ли API поддержки API для реализации RTP, RTSP для VoIP и проекта PTT? Почему у Android есть своя собственная реализация URI и не используется реализация Java по умолчанию? Службы Google Play и «Нет связанного приложения, связанного с этим идентификатором клиента» Как преобразовать Mac-адрес в шестнадцатеричный и передать его в bytearray в java Android – Не удается подключиться к камере Пейзаж и портретная ориентация Закройте приложение для Android Есть ли ссылка на View.postDelayed для Android? Android-студия – приложение с библиотечным проектом не может построить Является ли context.getSystemService () дорогим звонком? Параметры пользовательских событий Firebase Analytics Добавить метод в Android Копировать / Вставить глобальное контекстное меню?

Жесткое преимущество над растровым изображением для памяти в android

Этот вопрос связан с ответами по следующему вопросу:

Ошибка удаления растровых изображений [Android]

Есть ли преимущество использования Drawable over Bitmap в Android с точки зрения де-распределения памяти?

Я смотрел на «Полки Ромена Гая», и он использует SoftReference для кэшей изображений, но я не могу найти, где находится код, который де-выделяет эти Drawables, когда SoftReference автоматически восстанавливает память для Bitmap. Насколько я знаю .recycle () должен быть явно вызван в Bitmap, чтобы он был выделен.

    По моему мнению, битмапы, как правило, лучше для производительности, если вам не нужно много манипулировать изображениями. Однако, когда я не вручную их перерабатываю, я столкнулся с утечками памяти. Мое решение состояло в том, чтобы написать класс, который поможет мне управлять своими изображениями, что обеспечивает простой способ переработать все мои растровые изображения в определенных точках моего приложения. Он также обеспечивает простой способ повторного использования уже загруженных ресурсов (включая Drawables).

    Вам не нужно вызывать Bitmap.reycle (). Это будет сделано для вас в финализаторе. Выполнение этого в финализаторе означает, что распределение будет отложено до запуска финализаторов, поэтому, когда возможно, прямой вызов recycle () может помочь в управлении памятью.

    Точность. На этой странице , начиная с уровня API 11, данные пикселя Bitmap хранятся в куче Dalvik Heap вместе с соответствующим растровым изображением. Таким образом, вызов .recycle фактически не требуется, если вы не хотите восстановить память вручную для дальнейшего использования. Обязательно удалите ссылку на растровое изображение тоже, как добавленную меру.

    PS: Это была ссылка, которая объясняет ответ hackbod .