android专项-内存分析
2017-08-05 本文已影响153人
_夏兮
MAT下载地址:mat下载
1、导出.hprof文件
1.1 使用Androidstudio—>tools—>Android Device Monitor->进入DDMS
1)界面中选出应用程序的包名
2)点击Update Heap来更新统计信息(实现界面操作)
3)开始进行测试,测试结束后,点击Cause GC
4)点击Dump HPROF file,将该应用当前的内存信息保存成hprof文件
1.2 使用AS ->android Monitor
1)选择device,应用包名
2)开始测试,结束测试,点击memory旁边的小车图案手动触发GC
4)点击小车旁边的图案,将该应用当前的内存信息保存成hprof文件
5)打开 captures 文件夹找到4中生成的hprof文件, export to standard hprof。
2、数据分析
2.1 使用AS进行分析
如果你的AS没有这功能请更新版本
打开1.2 中第4布生成的文件
AS analysis2.2 使用MAT分析
2.2.1 DDMS 测试结束后点击Cause GC,点击Dump HPROF file/AS 导出标准的.hprof
2.2.2 MAT导入.hprof
2.2.3 Histogram查询
2.2.4 第一行可以输入正则表达式来匹配结果
Histogram2.2.5 右键—>Merge Shortest Path To GC Roots->exclude allphantom/weak/soft etc. references
2.2.6 结果
由图可以看出class com.evideo.*.*.* @ 0x42651678组件调用com.evideo.*.*.* @ 0x426e98d8,导致的内存泄露this$0 间接引用
this$0 间接引用