准备MAT工具:

工具地址 : https://www.eclipse.org/mat/

这里有两种方式:一是以插件的方式集合到eclipse中,二是直接下载MemoryAnalyzer(免安装);

Android studio生成hprof文件:

对于生成hprof文件,Android studio 3.0之后的版本和3.0之前的版本可以说是完全不一样的,如果你使用过eclipse开发过Android,那就很容易知道的,这里就不详细介绍了。

这里以Android studio 3.0之后的版本来做说明。

点击如下按钮:

android studio下载的文件移到别的盘_android

之后就会出现一个Android Profiler的控制面板,这里就是android studio给我们提供的内存分析的地方,关于Android Profiler的详细使用这里不做介绍,这里主要看MEMORY,点击如下红色区域:

android studio下载的文件移到别的盘_堆内存_02

接着就进入到了实时内存区域

android studio下载的文件移到别的盘_堆内存_03

上面三个标记按钮的作用:

1、内存回收;

2、堆转储,将此时堆内存中的对象记录导出到hprof文件中;

3、一段时间内堆内存中的分配记录,比如:点击开始,操作app,操作结束后,再次点击结束,这时就会生成一个记录了这段时间内堆中生成的对象。

这里要生成hprof文件,当然就是点击2了,之后就会出现一个堆记录面板,如下图:

android studio下载的文件移到别的盘_mat_04

在点击上面的红框按钮,就可以生成一个hprof的本地文件了,此时文件是生成了,如果这时就用MAT工具去打开,是会报错的,这时因为MAT是用来分析java文件的,与android studio导出的hprof文件有一点不同,这时就需要用到一个android sdk包下的一个工具hprof-conv.exe,将导出的hprof文件在进行转换一下,位置如下图:

android studio下载的文件移到别的盘_堆内存_05

 接下来打开控制台,切换到hprof-conv.exe所在目录,执行:hprof-conv 源文件 输出文件,如下图:

android studio下载的文件移到别的盘_Android_06

这里的D:\album.hprof就是android studio导出的hprof文件,而D:\album1.hprof就是转换后的文件,这也是MAT可以打开的文件,这样整个流程就全部完成了,接下来要做的就是去分析了,这里先不做介绍,等待下一篇再来。

Android studio结合MAT分析hprof文件