3

我有一个 Android 应用程序,它启动一个侦听传入短信的服务,并通过弹出窗口通知用户..

当我在 2.3 android 设备上安装并试用该应用程序时,它使用 4 到 5 mb 的内存,而在从 android 3.0 到 4.2 的某些设备上尝试它使用 11 mb 的内存。

你能解释这是为什么吗?或者可能是什么原因..?

4

1 回答 1

0

您所看到的很可能只是位图在 2.x 与 3.x-4.x 上的存储方式不同。

在 2.x 中,位图存储在本机内存而不是 dalvik 堆上,因此您实际上无法使用 Android 内存分析工具(MAT 等)正确测量它们,因为它只查看 Dalvik 堆。请参阅此处的第二个要点:内存管理

在 3.x-4.x 中,Bitmap 内存存储在 Dalvik Heap 上,因此很容易使用常用的内存工具进行跟踪。因此,您在 3.x-4.x 上的内存大小包括在 2.3 端未考虑的位图内存。

如果没有有关您的应用程序的更多信息,很难说还有什么可能导致这种情况。3.x/4.x 设备可能比 2.x 设备具有更大的堆,因此开销可能更大。太多变数无法推测。老实说,只要您的应用程序不泄漏内存并且内存不呈指数增长,您就不必太在意每个平台的差异。

希望有帮助。

于 2014-05-15T04:39:43.910 回答