使用了Heap视图的方式来分析内存泄露之后,我们尝试用MAT插件来分析下。
MAT,提供了太强大的功能,以至于在测试的过程中也是懵懂的,没有彻底的研究。
1. 安装Android Sdk,Java SDK,Eclipse之类的软件之后,
2. 安装Eclipse MAT插件
3. 调出DDMS的Heap视图
4. 手机连接电脑之后,选择要测试的进程,并点击Heap
5. 在手机上操作需要测试的功能
6. 选择Dump HPROF file功能。
7. 如果Eclipse中直接安装了MAT插件之后,直接回打开进入如下的页面
首先看到的是这个图,有几个点需要注意
1. MAT强大到能将内存泄露的怀疑区域划分出来,深色的区域,是代表怀疑有内存泄露的部分。即从表面上来看,有问题的区域占用的内存为5.3M,5.3M和5.6M
2. 其实在这个饼图中,更多的是获得了对内存泄露的一些具体情况。
点击 Leak Suspects 进入 页面,如图
在这个页面上,提示了有三个怀疑问题点。选择第一个,点击Detail 详细信息,选择到达内存消耗聚点的最短路径,如图:
如果是一个对代码比较清楚的开发来说,应该有了一些内存泄露方面的思路了。
如果不可以的话,再往下分析,查看内存消耗聚集对象信息,如图:
到此基本作为测试工作基本都分析完成了,如果开发到这里还不能看出什么问题造成的错误,那。。。
至于MAT还有很多其他的功能。这上面的只是根据别人的经验来分析的结果