Android, невозможная утечка памяти, как найти ее с затмением? - PullRequest
0 голосов
/ 13 мая 2011

Через некоторое время я встречаю исключение OutOfMemory, но раздуваю представление XML с помощью растрового изображения.

Проблема возникает после многократного открытия действий, которые используют много растровых изображений, но всегда надуваются из XML.

Я проверяю с помощью MAT Память. Первый вопрос: я не сохраняю свою активность в памяти - Если я фильтрую по названию своей активности, я получаю Objects = 0, но по некоторым действиям Я мог видеть RetainedHeap> = 302. Указывает ли это на утечку?

После этого я пытаюсь сравнить свою память в разные моменты времени, чтобы увидеть объекты, которые были созданы. Но я не могу найти ничего существенного.

Мой вопрос: если я не сохраняю действия в памяти, что может быть причиной утечки? Какие инструменты / метод использовать, чтобы найти его?

С уважением,

Olivier

Ответы [ 2 ]

0 голосов
/ 13 мая 2011
  1. Если у вас большие исходные изображения, масштабируйте их до целевого размера: Странно нехватка памяти при загрузке изображения в растровый объект

  2. Кэшировать растровые изображения (но не Drawables !!) в списке (или карте) и сохранять их в onRetainNonConfigurationInstance(): http://developer.android.com/resources/articles/faster-screen-orientation-change.html

0 голосов
/ 13 мая 2011

Попробуйте установить для всех ссылок на растровые изображения значение null, когда действие уничтожено.Это может не отвечать на ваши вопросы, но должно решить вашу проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...