LeakCanary2原理

640 阅读1分钟

LeakCanary是Android内存泄漏检测工具,能够将内存泄漏在开发的过程中就暴露出来。

LeakCanary工作原理

RefWatcher.watch()创建一个KeyedWeakReference到被监控的对象。

  1. 接下来,在后台线程中检测这个引用是否被清除,如果没有将会触发GC。

  2. 如果引用仍然没有清除,将heap内存dump到一个.hprof的文件存放到手机系统里。

  3. HeapAnalyzerService在另外一个独立的进程中启动,使用HeapAnalyzer解析heap内存通过HAHA这个项目

  4. HeapAnalyzer计算出到GC ROOTs的最短强引用路径决定是否发生Leak,然后建立导致泄漏的引用链。

  5. 结果被回传到应用程序进程的DisplayLeakService中,然后显示一个泄漏的通知。

LeakCanary基本使用:《LeakCanary让Android内存泄漏无处遁形》

LeakCanary2免写初始化代码原理:《LeakCanary2免写初始化代码原理》www.codercto.com/a/73667.htm…

LeakCanary源码分析:

《LeakCanary源码分析第一讲》:vjson.com/wordpress/l…

《 LeakCanary源码分析第二讲-RefWatcher详解》

《LeakCanary源码分析第三讲-HeapAnalyzerService详解》