Эффективный способ управления большим массивом растровых Android - PullRequest
2 голосов
/ 05 февраля 2011

У меня есть вопрос относительно рекомендуемой / лучшей практики для управления большим массивом растровых изображений.(Это приложение типа флипбука, в котором пользователь просматривает и создает новые страницы ... как виртуальная куча заметок k?) Раньше у меня был массив объектов, в которых были растровые изображения (хорошая производительность), но я быстро столкнулся с Outпроблем с памятью с лимитом кучи dalvik vm.

Позже я попытался сохранить растровые изображения, не отображаемые на экране, на карту SD в качестве кэша, а затем захватил их по требованию, но обнаружил, что это значительно медленнеетелефон, чем предыдущий метод.

Каков наилучший план атаки для этой проблемы?

Ответы [ 3 ]

3 голосов
/ 05 февраля 2011

Возможно, вы могли бы попробовать комбинацию. Сохраняйте растровые изображения на SD-карте в качестве кэша, и при загрузке растрового изображения «B» вы загружаете растровые изображения «A» и «C» в память, где «A» и «C» - это растровые изображения, окружающие «B» в вашем приложении.

1 голос
/ 10 апреля 2012

Вы должны использовать как кэш-память с сильными ссылками, так и дисковый кеш, см. Учебный класс Android Эффективное отображение растровых изображений , в частности урок Кэширование растровых данных урок.

0 голосов
/ 05 февраля 2011

Одно предложение, если ваше растровое изображение больше не используется или вы хотите удалить его из памяти.Вы должны сделать,

bitmapObject.recycle();

Это лучший эффективный способ освободить растровую память.

...