MAT是一款强大的内存泄漏分析工具,MAT不需要安装,下载解压就能用,下载地址 点击打开链接
1.下面模拟一下内存泄漏
private static TextView sTextView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
sTextView = new TextView(this);
}
保存完文件后还不能直接使用,需要使用 hpro-conv 命令进行转换一下,hprof-conv命令是Android SDK提供的,位于Android SDK platform-tools目录下。
dos下执行命令hprof-conv com.example.test.hprof test.hprof
3.得到test.hprof 然后用MAT打开
MAT提供的功能很多最常见的就是Histogram和dominator_tree
dominator_tree是把内存中的对象大小排序了,而且可以分析他们的引用关系,所以就比较常用。
我们可以根据大小来查一遍,选中一条然后 -->path to gc roots-->exclude weak/refrences 查看相关的引用关系,从而排查确定内存泄漏的位置。