很早之前就听说了cl(cl比较好记,就是leakcanary)了 但是一直没用,今天兴起,加在了项目中。
配置很简单,在要检测的module下面加入
dependencies {
debugCompile 'com.squareup.leakcanary:leakcanary-android:1.5'
releaseCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.5'
testCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.5'
}
然后在application中检测并初始化
if (LeakCanary.isInAnalyzerProcess(this)) {
// This process is dedicated to LeakCanary for heap analysis.
// You should not init your app in this process.
return;
}
运行项目,随便点几下,有内存泄露的话 就会有提示了。
在项目中发现基础内存泄露,记录一下
1、静态变量
项目里写代码的时候不注意,在一个view中引用了activity,并加了static修饰符,造成了内存泄漏。
2、Timer的使用
这里cl也提示有内存泄露,但是写代码的时候注意过了,在Timer使用完后,ondesdroy里已经cancel过了,不知道为啥还有内存泄露。再看看说吧。