MAT分析摘要
MAT分析:
Step1:如果用MAT分析,需要转换下:
MAT是用来分析java程序的hprof文件的 与Android导出的hprof有一定的格式区别,因此我们需要把导出的hprof文件转换一下,sdk中提供给我们转换的工具 hprof-conv.exe (在sdk的platform-tools目录下)
hprof-conv 源文件 输出文件
比如 hprof-conv E:\aaa.hprof E:\output.hprof
转换之后 用MemoryAnalyzer.exe 打开这个output.hprof文件

由于我们内存泄漏一般发生在Activity中,因此只需要查找Activity即可。
Step2:QQL 输入 select * from instanceof android.app.Activity ,F5执行或红色!

step3、查看引用情况,Activity或View大于1个对象, 都有可能发生内存泄露.(进一步排查,排查所有弱、软引用)
PS:当看到和测试包名相关联的activity引用路径时,比如看到 this0引用了这个Activity;this0是表示 内部类的意思,也就是一个内部类引用了Activity 而 this$0又被 target引用 target是一个线程,原因找到了,内存泄漏的原因 就是 Activity被 内部类引用 而内部类又被线程使用 因此无法释放
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
