LeakCanary的使用

原创 2017年09月14日 19:51:04

LeakCanary是一个对Android和Java进行内存泄露检测的库
使用方法:首先在gradle中进行配置

dependencies {
   debugCompile 'com.squareup.leakcanary:leakcanary-android:1.5.2'
   releaseCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.5.2'
 }

接着自己定义一个Application

public class MyApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        if (LeakCanary.isInAnalyzerProcess(this)) {
            // This process is dedicated to LeakCanary for heap analysis.
            // You should not init your app in this process.
            return;
        }
        refWatcher = LeakCanary.install(this);
        // Normal app init code...
    }

    private RefWatcher refWatcher;

    public static RefWatcher getRefWatcher(Context context) {
        MyApplication application = (MyApplication) context.getApplicationContext();
        return application.refWatcher;
    }
}

当然了这个Application要在manifest中设置成应用的Application

 android:name=".MyApplication"   

当需要检测某个对象是否泄露的时候也很简单

RefWatcher refWatcher = MyApplication.getRefWatcher(this);
refWatcher.watch(object);

注意下调用这个方法的时机应该是object对象已经完成了任务,正常情况下应该被回收掉了,但是如果此时还有别的对象引用了object导致其不能被回收,就会造成内存泄露,LeakCanary就会检测到,并在通知栏提示

这里写图片描述

点击进去的话就会显示内存泄露的信息,即泄露的对象到底是被谁引用了

这里写图片描述

版权声明:本文为博主原创文章,未经博主允许不得转载。

TraceView的使用

Traceview是android平台配备的一个性能分析工具,通过图形化的方式让我们了解程序的性能,并且能具体到method。 使用方法有两种: 1:在代码中追踪//追踪开始 Debug.star...

Android7.0 启动Launcher流程

在前文分析启动SystemServer流程可以知道在ZygoteInit中通过反射机制执行SystemServer的main函数,从而进入到SystemServer中。在SystemServer的ma...

eclipse使用LeakCanary的Demo源码

  • 2017年02月15日 14:59
  • 3.19MB
  • 下载

Android 使用LeakCanary 检测内存泄露

  • 2015年08月26日 10:05
  • 2.72MB
  • 下载

LeakCanary 中文使用说明

LeakCanary 中文使用说明 10 May 2015 LeakCanary Android 和 Java 内存泄露检测。 “A small leak wi...
  • ideav5
  • ideav5
  • 2016年05月11日 23:05
  • 185

leakcanary的使用demo

  • 2016年04月16日 16:28
  • 9.88MB
  • 下载

Android程序内存测试框架leakcanary的使用

Android程序内存测试框架leakcanary的使用目前能测试Android程序内存泄漏情况的方法,一个是使用Studio的开发工具自带的检查功能,如果不使用Studio可以使用leakcanar...

【Android程序优化,避免内存泄露】- [实战一]:避免内存泄露的最后一道墙,使用leakcanary分析程序中的内存泄露。

前言: 打算写一个系列吧,包括程序怎么优化,如何避免内存泄露,出现内存泄露该如何处理分析。 这个系列应该会很长,首先会根据实际项目中遇到的东西总结整理上来,然后会收集网上相关好资源分享。 ...

LeakCanary 中文使用说明

Android 和 Java 内存泄露检测。 “A small leak will sink a great ship.” - Benjamin Franklin 千里之堤, 毁于蚁穴...

【Android程序优化,避免内存泄露】- [实战一]:避免内存泄露的最后一道墙,使用leakcanary分析程序中的内存泄露。

前言: 打算写一个系列吧,包括程序怎么优化,如何避免内存泄露,出现内存泄露该如何处理分析。 这个系列应该会很长,首先会根据实际项目中遇到的东西总结整理上来,然后会收集网上相关好资源分享。 内容大致分两...
  • zxt0601
  • zxt0601
  • 2016年03月30日 00:14
  • 1411
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:LeakCanary的使用
举报原因:
原因补充:

(最多只允许输入30个字)