Leakcanary

Leakcanary

如何初始化

通过ContentProvider自动初始化并注册相应的默认监控类型

默认的监控类型有:

  1. Activity:在onDestory时观察
  2. Fragment:在onViewDestory时观察内部View,在onDestory时观察Fragment
  3. RootView:在Detached时观察
  4. Service:在onDestory时观察
怎么判断泄漏

在需要回收的时机里将对象放入到一个弱引用KeyedWeakReference里并传入自己的引用队列ReferenceQueue,然后放到一个观察map中

5秒后通过引用队列移除已经回收的数据,如果对象还存在map中说明没有移除成功

随后开始调用Debug.dumpHprofData()存储内存信息并分析

注意:新版本不会立马dump内存信息,默认需要达到5个才会dump