Intereting Posts
Visual Studio не позволяет мне отлаживать физическое устройство Android Ошибка Jackson + SugarOrm Как изменить прозрачность (альфа) представления на pre-SDK-11 на Android? Как программно устанавливать / редактировать содержимое веб-просмотра DrawerLayout и многоуровневая компоновка Как заставить Google Voice постоянно работать в фоновом режиме на Android Android, как переопределить проверку подключения к Интернету при подключении к Wi-Fi сети? Программно получить уровень API Android на устройстве? Как воспроизводить звук с микрофона на динамик непосредственно на Android? Проблема с шириной заполнения LinearLayout для Android Стиль андроида в коде Доступ к заголовкам ответов HTTP в WebView? Исключение: обратные вызовы должны устанавливать границы родительских объектов в populateNodeForVirtualViewId () Сетевые потоки компонентов архитектуры Android Прикрепить отладчик Eclipse для перезапуска приложения

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

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

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

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

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

Solutions Collecting From Web of "Жесткое преимущество над растровым изображением для памяти в android"

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

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

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

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