在遇到Leakcanary之前,排查Android开发时发生内存泄漏问题,真是蛋疼的要命,后来技术发烧友向我推荐了Leakcanary这款利器,我试着集成到开发项目中,不得了了:内存泄漏定位准确(比如持有static的强引用对象窗体结束后仍然未销毁),让我在解决时候有了一个明确的方向感。让我优雅的处理内存泄漏的排查和解决。感谢Square神器Leakcanary,github开源地址:https://github.com/square/leakcanary
集成方式也是很简单:
首先在build.gradle添加依赖:
dependencies {
debugCompile 'com.squareup.leakcanary:leakcanary-android:1.5.4'
releaseCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.5.4'
}
然后再程序的Application中的onCreate()方法初始化操作:
public class ExampleApplication extends Application {
@Override public void onCreate() {
super.onCreate();
if (LeakCanary.isInAnalyzerProcess(this)) {
// This process is dedicated to LeakCanary for heap analysis.
// You should not init your app in this process.
return;
}
LeakCanary.install(this);
// Normal app init code...
}
}
到这里就可以跑起来自己的项目了,当有内存泄漏的时候,Leakcanary会 显示定位到应用中发生内存泄漏的地方:
- 图上则指明了那个类发生了内存泄漏问题,我们再定位到这个类的方法去调试,发现问题,解决BUG。因此,这个开源工具对我们Android开发者来讲无疑是最好的福音。