我对编程还比较陌生,正在构建用于练习/娱乐的应用程序,但是我在理解Android中的内存使用方面遇到了麻烦(即使经过12个小时的研究)。我已经用Google Maps创建了一个Android应用程序,但是注意到Android Studio的内存探查器显示出很高的内存使用率(总计90-120MB),即使在强行进行垃圾收集和检查内存泄漏之后。
我很困惑。多个网站声明为每个Android应用程序分配了有限的内存。我已经读到旧设备倾向于分配16MB,而新设备倾向于分配32MB(具体取决于屏幕大小/分辨率)。
根据我所阅读的内容,探查器可以显示与应用程序没有直接关系的内存使用情况,但是这似乎无法说明分配内存限制与探查器显示的内容之间的差异。
当我尝试找出差异的来源时,我发现Google的开源Santa Tracker应用程序显示了大约90MB的内存使用量。我倾向于认为这是正常的内存使用量,也许是因为该应用使用了Google Maps。
答案 0 :(得分:0)
在内存分析器,代码,Java堆等中有不同的内存池。对您而言重要的是Java堆。那是有限的。对于现代设备而言,32 MB的价值很小,如今已接近100 MB。 16 MB就是2011年左右的大小。如果过去7年制造的任何设备如此之低,我都会感到非常惊讶。
将强制执行该限制,但是无论您的模拟器设置为什么,都将强制执行。我不知道那是什么。它将包括Google Maps片段,将包括Java堆上存储的所有内存。