序、慢慢来才是最快的方法。
LeakCanary系列
背景
LeakCanary是Square的开源库,通过弱引用方式侦查Activity或Fragment对象的生命周期,若发现内存泄漏自动 dump Hprof文件,通过HAHA库得到泄露的最短路径,最后通过Notification展示。
简单说就是在在Activity对象onDestory的时候,新建一个WeakReference对象指向Activity对象,如果Activity对象被垃圾回收的话,WeakReference对象就会进入引用序列的ReferenceQueue。
所以我们只需要在Activity对象OnDestory之后去查看ReferenceQueue序列是否有该WeakReference对象即可。
第一次观察是Activity的onDestory5秒后,如果发现ReferenceQueue对来还没有WeakReference对象,就进入第二次观察,如果有了,就证明没有泄漏,第二次观察跟第一次观察相比区别在于会先进行垃圾回收,在进行ReferenceQueue序列的观察。

本文介绍了LeakCanary在测试阶段的内存泄漏检测原理,探讨了其在上线环境的局限性,如生成.hprof文件导致的性能问题,并提出了基于内存阈值和数据库存储的解决方案。
最低0.47元/天 解锁文章
669

被折叠的 条评论
为什么被折叠?



