Android知识点和文章分享

Android内存优化之LeakCanary的使用

2017-12-18  本文已影响22人  正阳Android

debugCompile ‘com.squareup.leakcanary:leakcanary-android:1.5.4’

releaseCompile ‘com.squareup.leakcanary:leakcanary-android-no-op:1.5.4’

build.gradle引入这两个依赖

//添加leakcanary相关的依赖

//在release版本中,使用的是LeakCanary的no-op版本,也就是没有实际代码和操作的Wrapper版本,只包含LeakCanary和RefWatcher类的空实现,这样不会对生成的APK包体积和应用性能造成影响;

1.在Application处填写如下;其中有获取该RefWatcher的方法,我们在Fragment里面需要使用install方法

1.基本上就大功告成了

2.举个例子,在MainActivity中我们如下

测试

在通知中我们可以看如下通知

分析结果

LeakThead是 内部类,默认持有MainActivity的引用;多次横竖屏之后,Activity的生命周期会重走,本来应该被GC回收,但是并没有被回收,就造成了内存泄漏.图中告诉我们是MainActviity实例导致内存泄漏,往上分析就是LeackThread导致.

上一篇下一篇

猜你喜欢

热点阅读