我注意到在我的Galaxy Nexus上,android.content.res.Resources
正在分配约11MB的内存。我发现这个问题是在使用DDMS和"Dump HPROF file
"选项对事物进行分析时发现的。因此,我花了两个小时尝试查看这个分配是否由我的代码或支持库中的某些内容引起的。我删除了所有数据,大量的类,所有库,但没有看到任何变化。在活动的onCreate()
方法的开始处设置断点后,它显示11MB的分配已经存在。
在彻底困惑之后,我决定连接我的运行CM7的rooted Nook Color,查看完全相同应用程序的初始内存使用情况。MAT报告的最差情况下的内存“问题嫌疑人”仅为896KB。
ICS真的那么臃肿吗?我错过了什么吗?据我所知,我的应用程序正在正确运行,但堆使用情况指示97%已满,这让我担心可能会出现故障。
如果有帮助的话,MAT表明占用所有内存的主要对象是Bitmaps、BitmapDrawables
和NinePatchDrawables
。我不明白这些分配来自哪里。