Android内存泄露——MAT工具

一、前言

结束一个需求之后面临着就是各种各样的bug单,其中内存泄露问题着实让人头疼,这篇主要介绍一下如何使用工具——MAT


二、正文

1、Hprof文件解析

  • 打开AndroidSDK,找到platform-tools目录下的hprof-conv工具
  • 输入命令 hprof-conv in.hprof out.hprof ,其中in.hprof输入文件名,out.hprof输出文件名

2、Mat工具使用(官网地址

这里推荐独立安装(下载地址):根据系统直接下载Windows (x86)或Windows (x86_64),下载时可以选择适合自己的镜像,双击安装即可。

  • 首先使用Mat工具将转换好的文件打开:File->Open File;打开后默认会提示是否进行内存泄漏检测报告(如果打开Dump时跳过了的话,也可以从其它入口进入工具栏上的 Run Expect System Test -> Leak Suspects)

在这里插入图片描述
主要有两种方法:

  • 使用泄漏对象地址直接查找GC Path,进而分析链路上各个对象的成员变量
  • 如果知道泄漏对象的类型,还可以使用如下命令查找泄漏的对象:select * from instanceof com.xx.xxx.xx.xx

三、尾声

详细的不再赘述,这里提供一些分析的很好的文章:

  1. MAT工具:
    使用Android Studio和MAT进行内存泄漏分析
    java应用监测(6)-第三方内存分析工具MAT
  2. 内存泄露分析
    Android开发常见的Activity中内存泄漏及解决办法
    全面总结Android内存泄漏(上)
    Handler内存泄漏原因及解决方案