Android 应用程序内存使用情况与谷歌地图和内存限制



我对编程相对较新,正在构建一个用于练习/娱乐的应用程序,但我在理解Android中的内存使用情况时遇到了麻烦(即使经过12个小时的研究)。我用谷歌地图创建了一个Android应用程序,但注意到Android Studio的内存分析器显示出很高的内存使用率(总共约90-120MB),即使在强制垃圾回收和检查内存泄漏之后也是如此。

我很困惑。多个网站指出,每个Android应用程序都分配了有限的内存量。我读到旧设备倾向于分配 16MB,而新设备倾向于分配 32MB(具体取决于屏幕尺寸/分辨率)。

  • 这种内存使用是否有问题(在Android Studio上约为100 MB 内存性能分析器)?
  • 有人可以解释一下应用程序的内存如何 限制(上面提到的 16/32MB 限制)与 安卓的内存分析器?
  • 当我运行 来自Android Studio的应用程序(也许是我正在开发的b/c)?
  • 内存限制是否仅适用于无法进行垃圾回收的内容?
  • 内存限制是否不适用于谷歌地图片段(因为谷歌运行Android)?

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

当我试图了解更多关于差异的来源时,我看到谷歌的开源圣诞老人追踪器应用程序显示了大约90MB的内存使用量。我倾向于认为这是正常的内存使用量,因为该应用程序使用谷歌地图。

内存分析器中有不同的内存池 - 代码、java 堆等。 对你的案例来说,重要的是Java堆。 这就是有限的。 对于现代设备来说,32 MB 将是一个很小的价值,如今它更接近 100MB。 16 MB将是2011年左右的水平。 如果过去 7 年制造的任何设备都这么低,我会非常惊讶。

将强制执行该限制,但将由模拟器设置的任何内容强制执行。 我不知道它是什么。 它将包括谷歌地图片段,它将包括存储在Java堆上的所有内存。

最新更新