博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android studio导出hprof到MAT工具流程
阅读量:4179 次
发布时间:2019-05-26

本文共 888 字,大约阅读时间需要 2 分钟。

准备MAT工具:

工具地址 : 

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

Android studio生成hprof文件:

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

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

点击如下按钮:

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

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

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

1、内存回收;

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

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

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

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

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

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

你可能感兴趣的文章
使用Eclipse时出现Unhandled event loop exception错误的有效解决办法
查看>>
JAVA之路:第一章 JAVA入门初体验
查看>>
菜鸟文科生的java之路:运算符
查看>>
菜鸟文科生的java之路:变量和常量
查看>>
菜鸟文科生的java之路:流程控制语句
查看>>
北海糖:Java初阶练习题
查看>>
不知道什么是数组?看这里就好了
查看>>
文科生北海唐的Java之路:方法(慕课)
查看>>
自学Java的轨迹线路
查看>>
如何更好的隐藏你自己,让我们谈谈什么是封装?
查看>>
文科生北海糖的:Java之路——继承
查看>>
Makefile 中:= ?= += =的区别
查看>>
消灭编译警告(Warning)
查看>>
(GCC) How can I hide "defined but not used" warnings in GCC?
查看>>
错误: 隐式声明函数‘kmalloc’ [-Werror=implicit-function-declaration]
查看>>
error: two or more data types in declaration specifiers原因及解决方法
查看>>
Linux驱动基础开发2
查看>>
ioctl在socket中的一些用法及示例
查看>>
Linux设备驱动--块设备(二)之相关结构体
查看>>
Linux设备驱动--块设备(四)之“自造请求”
查看>>