github地址:https://github.com/square/leakcanary
参照资料:https://www.jianshu.com/p/70b8c87ea877
当前使用版本2.0,与之前的版本使用上有些许差异。
使用步骤:
1,在gradle中添加依赖(add dependence in gradle):
// debugImplementation because LeakCanary should only run in debug builds.
debugImplementation'com.squareup.leakcanary:leakcanary-android:2.0-beta-3'
当有内存泄漏时会有leakCanary的提示和通知,点开通知能看到内存泄漏的地方。
内存泄漏产生的原因:生命周期较长的对象持有生命周期较短的对象引用。java引用分为4种:强引用(内存不足时也无法回收引用关联的对象,会抛出outofmemeryerrorOOM错误)、软引用(在内存不足时进行回收,一般用于缓存(尤其是重新实例化会开销很大的对象))、弱引用(系统GC时进行回收)、虚引用(相当于对象没有引用,要和引用队列(referencequeue)一起使用)。
网友评论