Декодирование растрового изображения AndroidA

Я пытаюсь декодировать растровое изображение с размером пикселя 1024 * 683 с помощью файла декодирования API (путь к файлу), но при декодировании изображения процессу не хватает памяти.

Мне нужен растровый объект для этого изображения за один раз без какого-либо масштабирования, так как я должен работать с NDK, читая значения пикселей, используя это растровое изображение. Поэтому какой-либо метод масштабирования или выборки не может быть применен в моем случае.

Интересно, как это возможно, что просто для декодирования файла такого размера потребуется какой-либо метод обхода. Для этого процесса имеется достаточный размер кучи.

Ваше мнение и точка зрения в этом вопросе будут оценены.

Спасибо, Наваб.


person nawab    schedule 24.02.2011    source источник


Ответы (1)


Я столкнулся с той же проблемой, когда у меня были утечки памяти в одном из моих действий. Были утечки не только видов, но и растровых изображений. И память, потребляемая растровыми изображениями, не учитывается, когда DDMS показывает свободное место в куче.

person Michael    schedule 24.02.2011
comment
На данный момент я решил эту проблему, увеличив размер кучи для приложения в виртуальном устройстве до 16 МБ. Я не уверен, что это оптимальный размер кучи для одного приложения. Но, делая это, я могу решить эту проблему. - person nawab; 25.02.2011
comment
На самом деле это не очень хорошая идея, потому что на некоторых устройствах все еще есть 16 МБ кучи. - person Michael; 25.02.2011
comment
Да, вы правы... но дело в том, что мое приложение не подходит для таких телефонов с очень малой динамической памятью. Но все же я буду искать какой-то способ избежать использования кучи до такой степени в данный момент для декодирования битмапа такого размера. - person nawab; 25.02.2011
comment
Это не большое растровое изображение. Мое приложение работает с растровыми изображениями одинакового размера и никогда не падает с OOM. Я рекомендую вам использовать Memory Analyzer для Eclipse. Это отличный инструмент, который может помочь вам найти утечки памяти и накладные расходы на потребление памяти в вашем приложении. - person Michael; 25.02.2011