LeakCanary

可以直接在手机端查看内存泄露的工具
公司:square
github:https://github.com/square/leakcanary
用法:
1.添加依赖
 debugCompile 'com.squareup.leakcanary:leakcanary-android:1.5.4'
 releaseCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.5.4'
2.在自定义Application中添加
public class ExampleApplication extends Application {
    @Override public void onCreate() {
        super.onCreate();
        LeakCanary.install(this);
    }
}
3.检测方法

我们以性能优化-内存泄露案例分析
当该应用出现内存泄露,会在手机上生成Leaks应用
点击进入查看具体的内存泄露

LeakCanary_第1张图片
4.分析

静态变量static MainActivity.mBeens
引用了Arraylist,Bean.mContext
导致MainActivity泄露

5.原理

本质上还是使用命令控制生成Hprof文件分析检查内存泄露
然后发送通知
Application
  -install()
LeakCanary
  -androidWatcher()
RefWatcher
  -new AndroidWatcherExecutor -->dumpHeap/分析
  -new AndroidHeapDumper
  -new ServiceHeapDumpListener

你可能感兴趣的:(LeakCanary)