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

问题描述 投票:-1回答:1

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

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

  • 此内存使用是否有问题(在Android Studio的内存分析器上大约100 MB)?
  • 有人可以解释应用程序的内存限制(上面提到的16 / 32MB限制)与Android的内存分析器上显示的内容有何关系吗?
  • 当我从Android Studio运行应用程序(可能是我正在开发的b / c)时,是否强制执行限制?
  • 内存限制是否仅适用于无法收集垃圾的内容?
  • 内存限制是否不适用于谷歌地图片段(因为谷歌运行Android)?

根据我的阅读,分析器可以显示与应用程序没有直接关系的内存使用情况,但这似乎并不能解释分配内存限制与分析器显示的内容之间的差异。

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

android google-maps memory
1个回答
0
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.