Android内存分析实例(Eclipse+MAT)

Step 1.

首先在Eclipse中下载安装MAT工具,安装完成后连接设备,Eclipse打开ddms,在进程列表中选择要分析的进程,点击红圈中的圆柱体,在应用中执行一些操作后如果我们看到右边的内存在不断增加,则表明该进程中存在内存泄露。


Step 2.

然后点击带有箭头的圆柱体,eclipse会自动导出所选进程的hprof并调用MAT在eclipse中显示分析结果:

Android内存分析实例(Eclipse+MAT)_第1张图片


Step 3.

在分析结果的reports中有一个Leak Suspect,打开后我们能看到MAT认为有内存泄露的地方,分析方法见后面Step 8:



Step 4.

如果认为Leak Suspect中的信息没有用,可以点击下图红圈中的信息:

Android内存分析实例(Eclipse+MAT)_第2张图片


Step 5.

它会把进程中所有的对象都列出来,包括个数和占用空间的大小:

Android内存分析实例(Eclipse+MAT)_第3张图片


Step 6.

如果我们怀疑某个对象可能没有得到释放,可以在下图红圈中输入对象的类名来查看:

Android内存分析实例(Eclipse+MAT)_第4张图片


Step 7.

这时我们可以看到输入的类的对象有多少个,反复执行操作后再执行上述操作,可以确定输入的对象是否有增加,如果有就说明它确实存在泄漏:



Step 8.

要查看到底是什么对象在引用他们导致内存泄漏,右键单击选择对象,依次按图选择菜单:

Android内存分析实例(Eclipse+MAT)_第5张图片


Step 9.

这样它会显示是什么对象在引用它们,这时我们再结合代码就知道为什么这些对象在增加了。


你可能感兴趣的:(Android内存分析实例(Eclipse+MAT))