leakcanary是一个监测android和java内存泄漏的工具。他能够在不影响程序正常运行的情况下,动态收集程序存在的内存泄漏问题。小的内存泄露可能不会有直接导致程序崩溃,但是量变终会引发质变,从而造成内存溢出,程序崩溃。leakcanary因为功能强大,而且部署简单,所以深受大家的喜爱。
接下来简单介绍怎么将leakcanary集成到我们自己的程序中去,总共分两步:
第一步,引入依赖库。在我们的工程的build.gradle脚本中添加如下语句:
dependencies {
debugImplementation 'com.squareup.leakcanary:leakcanary-android:1.6.3'
releaseImplementation 'com.squareup.leakcanary:leakcanary-android-no-op:1.6.3'
debugImplementation 'com.squareup.leakcanary:leakcanary-support-fragment:1.6.3'
}
第二步,在程序中启动leakcanary。在程序的主入口中添加如下代码:
if (LeakCanary.isInAnalyzerProcess(this)) {
return;
}
LeakCanary.install(this);
举一个例子,请参考:
public class DemoApplication extends Application {
@Override public void onCreate() {
super.onCreate();
if (LeakCanary.isInAnalyzerProcess(this)) {
return;
}
LeakCanary.install(this);
//程序的正常代码。。。
}
}
到这里,leakcanary就部署好了,是不是非常简单。这样运行程序后,就会同时运行leakcanary,退出程序后,手机桌面就会自动生成一个leakcanary的图标。这时,我们点开图标,如果存在内存泄露,里边就会出现相关的提示信息。
这里给个截图: