Жесткое преимущество над растровым изображением для памяти в 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 .