带有Google Maps和内存限制的Android应用程序内存使用情况

时间:2019-03-23 01:58:46

标签: android google-maps memory

我对编程还比较陌生,正在构建用于练习/娱乐的应用程序,但是我在理解Android中的内存使用方面遇到了麻烦(即使经过12个小时的研究)。我已经用Google Maps创建了一个Android应用程序,但是注意到Android Studio的内存探查器显示出很高的内存使用率(总计90-120MB),即使在强行进行垃圾收集和检查内存泄漏之后。

我很困惑。多个网站声明为每个Android应用程序分配了有限的内存。我已经读到旧设备倾向于分配16MB,而新设备倾向于分配32MB(具体取决于屏幕大小/分辨率)。

  • 此内存使用是否有问题(Android Studio的内存约为100 MB 内存探查器)?
  • 有人可以解释应用程序的内存如何 限制(上述16 / 32MB限制)与以下内容有关 Android的内存分析器?
  • 运行时是否未执行限制? Android Studio中的应用程序(也许我正在开发b / c)?
  • 内存限制仅适用于不能被垃圾收集的东西吗?
  • 内存限制是否不适用于Google Maps片段(因为Google运行Android)?

根据我所阅读的内容,探查器可以显示与应用程序没有直接关系的内存使用情况,但是这似乎无法说明分配内存限制与探查器显示的内容之间的差异。

当我尝试找出差异的来源时,我发现Google的开源Santa Tracker应用程序显示了大约90MB的内存使用量。我倾向于认为这是正常的内存使用量,也许是因为该应用使用了Google Maps。

1 个答案:

答案 0 :(得分:0)

在内存分析器,代码,Java堆等中有不同的内存池。对您而言重要的是Java堆。那是有限的。对于现代设备而言,32 MB的价值很小,如今已接近100 MB。 16 MB就是2011年左右的大小。如果过去7年制造的任何设备如此之低,我都会感到非常惊讶。

将强制执行该限制,但是无论您的模拟器设置为什么,都将强制执行。我不知道那是什么。它将包括Google Maps片段,将包括Java堆上存储的所有内存。