Leakcanary

一、什么是内存泄漏

垃圾回收器无法回收应被回收的对象
比如:在Activity生命周期过程中,旋转屏幕时应新建activity,原activity应被销毁。但如果线程一直在引用此activity,则会出现OOM(out of memory)

二、常规检查内存泄漏的方法
1.通过统计平台了解oom
2.重现问题
3.在内存泄漏时dump内存
4.使用内存分析工具反复查看
常用java内存分析工具有MAT、YourKit

三、Leakcanary和MAT、YourKit对比

MAT -- 分析起来步骤繁琐,每次抓到dump文件,先要使用”hprof-conv test.hprof test1.hprof” 转换,再使用MAT分析。分析难度较高,初级工程师较难分析。

YourKit -- 商业化工具

Leakcanary -- 简单易用,查看路径简单,且实时记录log

 

四、Leakcanary用法


官方:https://github.com/square/leakcanary

build - clean project    加载Leakcanary   代码行中可联想出“Leakcanary”

通知栏中查看oom路径   查看reference  哪些地方引用了该类导致oom 

并可实时抓取logcat日志,查看leakcanary日志。

posted @ 2016-10-21 19:09  biangbiang  阅读(342)  评论(0编辑  收藏  举报