MAT 全称 Eclipse Memory Analyzer,他是一款强大的内存泄漏分析工具,mat不需要安装,下载解压就可使用。
一、工具的下载网址
下载网址
二、在AS3.X上的使用
我们知道AS3.x上找不到了 DDMS 中的Monitor,因为自Android Studio 3.0开始弃用Android Device Monitor。虽说弃用但是我们还是可以使用。
1、命令打开
打开cmd 进入安卓sdk安装路径下的tools,打开这个monitor即可。
2、导出文件
保存文件:
3、修改文件
使用platform-tools 这个工具:
生成文件:
语法:hprof-conv F://test.hprof F://test-conv.hprof
hprof-conv 为我们使用的工具名
F://test.hprof上文中我们保存的文件全路径
F://test-conv.hprof 要修改为的文件
ps:就是把.hprof 变为-conv.hprof 便于MAT工具识别
4、mat工具使用
使用mat工具打开这个 test-conv.hprof文件
主要使用功能:
1、histogram:可以看出内存中不同类型buffer的数量和占用内存大小
2、dominator tree:吧内存大小按照从大到小顺序排序,并且可以分析对象之间的引用关系。内存泄漏分析就是通过dominator tree来完成。
在这里分析查找原因即可:
小结
随着studio 3.x的出现,Monitor也逐渐被弃用,这时我们使用MAT就不太方便了,其实AS又提供了新的内存分析工具(如下)
其实使用框架也可以分析(LeakCanary)
目前比较流行的三个:
- mat
- LeakCanary
- 强大的Android Profiler(参考文章)