Использование памяти приложения Android с Google Maps и ограничениями памяти - PullRequest
0 голосов
/ 23 марта 2019

Я относительно новичок в программировании и создаю приложение для практики / развлечения, но у меня возникают проблемы с пониманием использования памяти в Android (даже после 12 часов исследований). Я создал приложение для Android с Google Maps, но заметил, что профилировщик памяти Android Studio показал высокое использование памяти (всего около 90-120 МБ) даже после принудительного сбора мусора и проверки на утечки памяти.

Я в замешательстве. Несколько веб-сайтов заявляют, что каждому приложению Android выделяется ограниченный объем памяти. Я читал, что старые устройства имеют тенденцию выделять 16 МБ, в то время как более новые устройства имеют тенденцию выделять 32 МБ (что зависит от размера / разрешения экрана).

  • Проблематично ли использование памяти (около 100 МБ на Android Studio профилировщик памяти)?
  • Может кто-нибудь объяснить, как память приложения предел (указанный выше предел 16/32 МБ) относится к тому, что показано на Профилировщик памяти Android?
  • Не применяется ли ограничение при запуске приложение от Android Studio (возможно, б / к я разрабатываю)?
  • Ограничение памяти применяется только к вещам, которые нельзя собрать мусором?
  • Не распространяется ли ограничение памяти на фрагмент карты Google (поскольку Google работает под управлением Android)?

Из того, что я прочитал, профилировщик может показать использование памяти, которое не имеет прямого отношения к приложению, но, похоже, не учитывает разницу между пределом выделяемой памяти и тем, что показывает профилировщик.

Когда я попытался узнать больше о происхождении разницы, я увидел, что приложение Google с открытым исходным кодом Santa Tracker показало около 90 МБ использования памяти. Я склонен думать, что это нормальный объем использования памяти, может быть, поскольку приложение использует Google Maps.

1 Ответ

0 голосов
/ 23 марта 2019

В коде профилировщика памяти, в куче Java и т. Д. Существуют разные пулы памяти. В вашем случае важна куча Java. Это то, что ограничено. 32 МБ было бы небольшим значением для современных устройств, в наши дни оно намного ближе к 100 МБ. 16 МБ было бы тем, что было в 2011 году или около того. Я был бы очень удивлен, если бы какое-либо устройство, изготовленное за последние 7 лет, было таким низким.

Ограничение будет применяться, но оно будет выполняться в зависимости от того, на что установлен ваш симулятор. Что я понятия не имею, что это такое. Он будет включать в себя фрагмент Google Maps, он будет включать в себя всю память, хранящуюся в куче Java.

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