码迷,mamicode.com
首页 > 其他好文 > 详细

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

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

标签:leakcanary   内存泄露   

引子

  • 最近江湖流传一内存泄露检测的神奇-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如何做内存泄露检测

标签:leakcanary   内存泄露   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!