Почему мое приложение для Android выделяет существенно разные объемы памяти в разных версиях ОС? - PullRequest
5 голосов
/ 08 марта 2012

У меня есть очень простое приложение для Android, состоящее из одного занятия с несколькими текстовыми полями и небольшим количеством кода для обработки.

Когда я устанавливаю его на устройство 2.3 и открываю его впервые, он выделяет ~ 2,7 МБ памяти (согласно вкладке Обновление кучи в Eclipse DDMS).

На устройстве 3.1 он выделяет ~ 6,1 МБ.

На устройстве 4.0 он выделяет ~ 13,8 МБ.

Я не вносил изменений в код между этими 3, и эти меры были приняты после первоначальной установки / открытия приложения (поэтому у него не было времени на утечку). Он не использует образы и не включает аппаратное ускорение.

Кто-нибудь знает, почему следы могут так сильно различаться? Я предполагаю, что это связано с различиями в версиях ОС, но мне интересно, если кто-нибудь знает, что эти различия могут быть.

Я читал об изменении в распределении растровых изображений, начиная с версии 3.0, что вызывает очевидное увеличение выделенной памяти, но мое приложение не использует никаких изображений. Он состоит только из нескольких полей EditText и TextViews.

1 Ответ

1 голос
/ 08 марта 2012

Предварительно сотовые растровые изображения были размещены в собственной куче.Начиная с Android 3.0 (включая ICS), пиксельные данные для растровых изображений размещаются в куче Dalvik.Разница между 2.3 и 3.1 может быть из-за этого.

ICS действительно использует память больше, чем 3.1, и я не знаю причину этого.

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