LeakCanary is a memory leak detection library for Android.
上面是官方文档给出的介绍,LeakCanary是一个在android上检测内存泄漏的依赖。
使用方法只需要在你的build.gradle中添加如下依赖即可。
debugImplementation ‘com.squareup.leakcanary:leakcanary-android:2.2’
好了,在你的手机上运行一下,试试效果吧! 没错就是这样。
笔者曾去网上查了很多LeakCanary使用教程,发现,版本都是1.6什么的,但是在我的手机上无法起到检测内存泄漏的作用
使用效果我们运行我们的app,然后当出现内存泄漏的时候,通知栏会告诉我们出现了内存泄漏,并会在桌面生成一个leaks图标
点开之后往下看,就可以看到内存泄漏出现的位置
例如上面我出现的这个内存泄漏就很经典。当你将activity的context传入其他类时,当activity销毁时,一些引用并不会被回收,这跟jvm的对象回收机制有关。
我们通过LeakCanary的信息可以找到具体的位置
就是这个位置了,这种问题的解决办法就是尽量传入Application的Context,像这样
FaceInfoGetUtil.getInstace(MyApplication.getContext())
结语
如果你是一个热衷于高质量代码的Android 开发,LeakCanary会是一个必不可少的懒人神器。
作者:阳光大男孩!