Leakcanary
如何初始化
通过ContentProvider自动初始化并注册相应的默认监控类型
默认的监控类型有:
- Activity:在onDestory时观察
- Fragment:在onViewDestory时观察内部View,在onDestory时观察Fragment
- RootView:在Detached时观察
- Service:在onDestory时观察
怎么判断泄漏
在需要回收的时机里将对象放入到一个弱引用KeyedWeakReference
里并传入自己的引用队列ReferenceQueue
,然后放到一个观察map中
5秒后通过引用队列移除已经回收的数据,如果对象还存在map中说明没有移除成功
随后开始调用Debug.dumpHprofData()
存储内存信息并分析
注意:新版本不会立马dump内存信息,默认需要达到5个才会dump