http://www.eclipse.org/mat/downloads.php

点击eclipse marketplace…搜索memory。

android studio 运行APP 后,点击 Profiler, 然后点击 MEMORY

点击 

等一段时候后,会出现以下界面,选中 HEAP Dump , 然后点击导出 hprof 文件

在使用mat 工具分析之前我们需要把AS 导出的hprof 文件转换一下,
转换工具在android sdk/platform-tools/hprof-conv 路径下
命令
hprof-conv -z src dst
如:
hprof-conv -z E:/as-memory-20220629T225907.hprof E:/memory-20220629T225907.hprof
在Mat中打开hprof文件

之后我们能看到

我们点击

以直方图的方式来显示当前内存使用情况可能更加适合较为复杂的内存泄漏分析,它默认直接显示当前内存中各种类型对象的数量及这些对象的shallow heap和retained heap。结合MAT提供的不同显示方式,往往能够直接定位问题
shallow heap:指的是某一个对象所占内存大小。
retained heap:指的是一个对象与所包含对象所占内存的总大小。
out 查看这个对象持有的外部对象引用。
incoming 查看这个对象被哪些外部对象引用。
我们希望查看为什么这个对象还存在,排除软弱虚引用。




具体分析Referenced Objects 比较多的对象,那就有可能存在内存泄漏