Какой тип «не Java-объекта» отображается в инструменте «Куча» в Android SDK? - PullRequest
0 голосов
/ 06 декабря 2011

Я борюсь с утечками памяти и для этого использую инструмент Heap в затмении.

Как вы видите на этом скриншоте http://hpics.li/b7c60de, большая часть моей памяти используется не Java-объект но я не знаю, что это за тип.Это код C ++, объекты ресурсов, такие как изображения ...?

1 Ответ

0 голосов
/ 07 декабря 2011

Ваш комментарий предполагает, что вы просочились хотя бы по одной ссылке на каждое из ваших действий. Есть ли у вас какие-либо статические Drawables, Views, Contextxts и т. Д.? Есть ли у вас какие-то внутренние нестатические классы (они сохраняют ссылку на внешний класс)? Сохраняете ли вы какие-либо Drawables, Представления, Контексты и т. Д. В своем Приложении или где-либо еще, у которого срок службы больше, чем у Activity.

Это 3 основные вещи, которые обычно протекают.

Drawables, Views, Adapters и другие вещи хранят ссылки на Context, в котором они созданы (это родительское Activity), поэтому, если вы сохраняете их живыми дольше, чем само Activity, Activity остается в памяти.

Это видео объясняет все и как использовать несколько инструментов, чтобы помочь вам отладить проблему.

...