为什么Kitkat过程统计值的差异很大

时间:2014-06-25 00:42:52

标签: android performance memory-management memory-leaks

我正在尝试分析我的应用内存使用情况,

我试图连续5分钟获得MAT hprof转储,看到堆大小最大达到40MB,应用程序放入后台后,其堆大小达到~37MB,分配为23MB

但是,如果我去处理Kitkat的统计数据,平均内存使用量显示为58MB,峰值为59MB,甚至设置 - >应用程序管理器 - >运行

有人可以帮助我理解为什么会出现如此大的断开连接以及如何调试内存所处的位置。我认为MAT是最好的工具。 我希望我的应用程序低于50MB,在正常情况下应该是20-30MB,但由于运行选项卡显示59MB,我很困惑。

1 个答案:

答案 0 :(得分:0)

这两个Android操作系统版本是否有机会在不同的手机上?

如果是这样,内存中的差异很可能不是操作系统,而只是屏幕的DPI。更高的屏幕DPI需要将更大的资产(位图)存储在内存中,以反映您所看到的内容。

即使您在两部手机上显示的drawable/文件夹中都存储了相同的图像,Android也会根据您的屏幕尺寸对其进行缩放,因此在运行时,相同的图像将在两部手机上占用不同的内存量。 / p>

使用相同DPI屏幕大小的Kitkat和早期版本的Android运行模拟器,您应该会看到与您的应用程序更相似的内存使用情况。