我有一个Android应用程序启动服务侦听传入的短信,并通过弹出通知用户..
当我在2.3安卓设备中安装和试用应用程序时,它使用4到5 MB的内存,并尝试从android 3.0到4.2的某些设备,它使用11 MB的内存。
你能解释一下这是为什么吗?或者可能是什么原因..?
答案 0 :(得分:0)
您看到的最有可能的是位图在2.x与3.x-4.x之间存储的差异。
在2.x上,Bitmaps存储在本机内存而不是dalvik堆中,因此您无法使用Android内存分析工具(MAT等)实际正确测量它们,因为它只能查看Dalvik堆。请参阅此处的第2个要点:Memory Management
在3.x-4.x上,位图内存存储在Dalvik堆上,因此可以使用常用的内存工具轻松跟踪。所以你在3.x-4.x上的内存大小包括在2.3方面没有考虑的位图内存。
如果没有关于您的应用的更多信息,很难说还有什么可能导致这种情况。 3.x / 4.x设备可能会有更多的开销,这些设备往往比2.x设备具有更大的堆。要推测的变量太多。老实说,只要您的应用程序没有泄漏内存并且内存不会呈指数级增长,您就不应该过多关注每个平台的差异。
希望有所帮助。