不同版本之间的Android应用程序服务内存使用差异

不同版本之间的Android应用程序服务内存使用差异,android,android-service,android-memory,Android,Android Service,Android Memory,我有一个Android应用程序,它启动一个服务,监听传入的短信,并用弹出窗口通知用户 当我在2.3安卓设备上安装并试用该应用程序时,它使用了4到5 mb的内存,在安卓3.0到4.2的一些设备上试用时,它使用了11 mb的内存 你能解释一下这是为什么吗?或者原因是什么?您看到的很可能只是位图存储在2.x和3.x-4.x上的不同 在2.x上,位图存储在本机内存中,而不是dalvik堆中,因此您无法使用Android内存分析工具(MAT等)正确地测量它们,因为这只会查看dalvik堆。请参见此处的第二

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

当我在2.3安卓设备上安装并试用该应用程序时,它使用了4到5 mb的内存,在安卓3.0到4.2的一些设备上试用时,它使用了11 mb的内存


你能解释一下这是为什么吗?或者原因是什么?

您看到的很可能只是位图存储在2.x和3.x-4.x上的不同

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

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

如果没有关于你的应用程序的更多信息,很难说还有什么原因会导致这种情况。3.x/4.x设备的开销可能会比2.x设备大。太多的变量,无法进行推测。老实说,只要你的应用程序不泄漏内存,并且内存不会成倍增长,你就不应该太在意每个平台的差异


希望这会有所帮助。

转储堆并使用MAT确定内存消耗的位置。