Android-ограничить размер кучи до 16 МБ для целей тестирования?


Я создал приложение для Android, и теперь я хочу убедиться, что оно никогда не превышает 16 МБ использования кучи.

К сожалению, для этой задачи мое устройство имеет гораздо большую кучу, чем минимум 16 МБ, у него есть по крайней мере 32 МБ.

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

Я пробовал использовать различные профилировщики, но это не так просто.

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

Можно ли ограничить размер кучи до 16 Мб на устройстве размера кучи 32 МБ для целей тестирования?

1   2  

1 ответа:

Лучший способ сделать это-использовать виртуальное устройство Android, так как вы можете настроить размер кучи в эмуляторе Android. Он находится в расширенных опциях при создании AVD.

Однако, если вы должны проверить это на реальном устройстве, вы можете имитировать наличие меньшей кучи, создавая утечку памяти кучи при запуске. Убедитесь, что вы сохраняете строгую ссылку на выделенный объект, чтобы он не был собран мусором.

На устройстве с размером кучи 32 МБ, если вы создадите утечку 16 МБ при запуске это позволит оставить оставшиеся 16 МБ места в куче для вашего приложения.