我的应用程序使用了一点内存,大约 3.4MB,在一些旧的 android 设备中,例如 GT-I9001。但是当我在 HTC one 中运行它时,我的应用程序使用了更多的内存。
看,分配的内存是26.881MB,太大了,空闲内存只有2.940MB。然后我使用MAT工具检查内存泄漏,我发现资源位图使用马赫内存。
我无法解释原因。我的应用程序经常内存不足。我想也许这个问题是由高屏幕分辨率引起的。如果有人也遇到这个问题,请加入讨论,谢谢!
我调试了这个问题,发现了一些原因:
我的启动活动中的 onCreate() 函数,你可以看到断点。在调用 setContentView(R.layout.welcome) 加载布局 xml 之前,应用程序仅使用分配的内存 3.4MB。然后应用程序运行到下一步,它使用分配的内存 19MB。所以我认为这个问题一定是由加载布局xml引起的。
我修改了“welcome.xml”文件,删除了所有只有“RelativeLayout”的小部件
但该程序也使用 19MB 内存。最后,我删除了RelativeLayout的背景,程序内存恢复正常大小,它只使用了3MB。
图片“loading_background.png”的大小只有21KB,我想可能是高端设备的高屏幕分辨率改变了内存中的图片大小,我会尝试使用9.png图片。如果您了解这部分问题,请加入讨论,谢谢!