LeakCanary的使用

来源:互联网 发布:tensorflow的windows版 编辑:程序博客网 时间:2024/05/30 04:29

GitHub地址

Square公司开发可以直接在手机端查看内存泄露的工具

实现原理:本质上还是用命令控制生成hprof文件分析检查内存泄露,然后发送通知。

接入步骤:


1.添加依赖:
debugCompile 'com.squareup.leakcanary:leakcanary-android:1.5.1'releaseCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.5.1'testCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.5.1'
2.application的onCreate()中:
if (LeakCanary.isInAnalyzerProcess(this)) {    return;}LeakCanary.install(this);}
在API14以上可直接检测泄漏。
以下为测试用例:
public class TestActivity extends BaseActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_test);    }    @Override    protected void onStart() {        super.onStart();        new Thread() {            @Override            public void run() {                while (true) {                    try {                        Thread.sleep(1000);                        Log.e(getPackageName(), "LeakCanary ----->>>>> " + System.currentTimeMillis());                    } catch (Exception e) {                    }                }            }        }.start();    }}

运行之后,测试机会同步安装Leaks。
如图:
运行中,出现:
代表捕获了泄漏位置。
找到通知栏:
点击进入后,会看到:

另附:

LeakCanary检测内存泄漏及解决办法

Android开发常见的Activity中内存泄漏及解决办法