内存泄漏分析 mat 使用 activity泄漏

https://github.com/square/leakcanary

square 公司出品

mat 下载地址:
http://pan.baidu.com/s/1kVPoIxx

两天,一个内存泄漏 activity 泄漏 ,搞了两天。毕竟是有开发经验的程序员,工作时间久了,你说你没有用过mat?没有过内存优化分析,内存泄漏研究? 呵呵。

第一步:使用stadio 生成hprof文件

这里写图片描述

第一步,先用gc 回收回收内存,如果有内存泄漏的话,gc是回收不了的。多点几次。
第二部:
开始生成内存文件。点一下就好了,过一会它会自己生成。


这里写图片描述

然后点击去分析你的leaked Activity


这里写图片描述

然后:
1.点击这里,可以找到你生成的内存文件。
2.因为mat 是Java内存分析,这里生成的是android的,所以,你要转一下。


这里写图片描述

打开mat


这里写图片描述
点这里的1,然后在里面搜索你分析出来的内存泄漏的activity的名字,比如:MainActivity


这里写图片描述

如图,搞一下


这里写图片描述

然后在这里看哪里在引用他。

一般情况,会有如下情况:
1。静态的变量
2。post 的一些Runnable ,activity销毁了,Runnable没有被移除。
3。反正就是一些东西没释放,这些东西还占用着activity。

原文地址:https://www.cnblogs.com/caoxinyu/p/6647749.html