最近对老项目进行review的时候发现了很多问题,其中比较突出的就是内存泄漏。由于这种问题比较特殊,因为它平时不会影响我们App的正常功能,但是如果一直不去管理,那么在App运行一段时间之后,必然出现卡顿,甚至是崩溃(由于内存占用而导致的)。
为了解决这个问题我找到了一个第三方检查内存泄漏的工具LeakCanary。使用方式也很简单,网上有很多教程,我在这里贴一下它的Github地址
使用方式,step1:
//如果只需要在测试环境中使用就用这个
debugImplementation 'com.squareup.leakcanary:leakcanary-android:1.6.1'
//如果需要在正式环境中使用就用这个
implementation 'com.squareup.leakcanary:leakcanary-android-no-op:1.6.1'
step2:
public class App extends Application {
@Override
public void onCreate() {
super.onCreate();
//在项目的Application类中加入这个代码
if (LeakCanary.isInAnalyzerProcess(this)) {
return;
}
LeakCanary.install(this);
}
}
step3:
剩下的就是照常运行、使用App,当LeakCanary发现内存泄漏的时候,就会在通知栏出现提示。
结尾谈谈内存泄漏检查的原理:
我在某乎上找到了一篇不错的文章,讲的就挺好了--->LeakCanary原理