首页 > 其他 > 详细

体验LeakCanary如何做内存泄露检测

时间:2015-05-20 09:43:55      阅读:269      评论:0      收藏:0      [点我收藏+]

引子

  • 最近江湖流传一内存泄露检测的神奇-LeakCanary,于是笔者按耐不住激动的心情,想试一把。结果伤不起的,这个工程是gradle的,对于使用eclipse惯了的同学来说伤不起……不过笔者将其改造为eclipse工程了,github地址:https://github.com/cheyiliu/leakcanary/tree/leakcannary_eclipse_project

用法

  1. 下载该工程,导入eclipse并作为lib工程
  2. 在你的测试工程里引入该lib工程
  3. 将lib工程的manifest里的activity, service, permission信息拷贝到测试工程的manifest
  4. 按照官方介绍进行测试 https://github.com/square/leakcanary#how-do-i-use-it,笔者采用了其中的一个例子进行验证,代码如下:
public class MyApp extends Application {

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

    private RefWatcher refWatcher;

    @Override
    public void onCreate() {
        super.onCreate();
        refWatcher = LeakCanary.install(this);
    }

}


public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Box box = new Box();//来自官方的例子
        Cat schrodingerCat = new Cat();
        box.hiddenCat = schrodingerCat;
        Docker.container = box;
        MyApp.getRefWatcher(this).watch(schrodingerCat);
    }

}

class Cat {
}

class Box {
    Cat hiddenCat;
}

class Docker {
    static Box container;
}

# 结果
* 技术分享
* 技术分享

原理

  • TODO

体验LeakCanary如何做内存泄露检测

原文:http://blog.csdn.net/cheyiliu/article/details/45866145

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!