2014-01-15 1 views
0

Мои извинения, это, наверное, немой вопрос. Я получаю ошибку из памяти на моем андроиде, поэтому я просмотрел несколько часов учебников по DDMS. Я по-прежнему новичок в этом, но это поведение странно.Android DDMS High Initial Retained Heap

Я собирался около 30 МБ в своей мелкой куче. Итак, я начал проверять все объекты, ничего не выглядело слишком подозрительно (только некоторые большие растровые изображения и т. Д.), Однако есть некоторые действительно огромные объекты, которые, похоже, не принадлежат моему приложению. Итак, я тестировал ddms на пустое приложение. Когда я создаю дамп в основном пустом приложении, он все еще говорит, что есть 12 мб вещей. На всех учебниках никто не имел ничего подобного. Я предположил, что, поскольку мы должны щелкнуть приложение, чтобы создать дамп, он собирал объекты, специфичные для приложений. Это предположение неверно? И есть ли способ исправить это? Собирает ли он другие объекты, не связанные с моим приложением?

Как я уже сказал, это приложение, по существу, настолько же голое, насколько это возможно, никаких ресурсов изображения, ничего. Я просто сделал приложение для Android и уволил его.

Вот гистограмме enter image description here

ответ

1

Если устройство находится выше ICS (Android 4.0), дополнительное выделение памяти используется для аппаратного ускорения с целью улучшения графической производительности.
В android 3.x аппаратное ускорение можно закрыть, установив флаг в AndroidManifest.xml. Но в android 4.x такого флага нет, а аппаратное ускорение всегда true, если ваше устройство поддерживает его.

Вот источник.
https://plus.google.com/105051985738280261832/posts/2FXDCz8x93s