美文网首页
LeakCanary原理整理

LeakCanary原理整理

作者: 朱哥 | 来源:发表于2021-03-31 18:31 被阅读0次

    主要描述LeakCanary的检查原理,具体实现过程,可以查看源码分析,2.x可以对View做分析检查。

    XMind导出文字

    LeakCanary

    基本原理:基于WeakReferences,在创建一个weak对象时,指定一个ReferenceQueue,当weak对象被回收时,就会将对象添加到ReferenceQueue

    1. 当Activity被回收时,创建一个对应的weak对象,指定ReferenceQueue

    2. 生成一个key,将<key, weak对象>放入 watchedReferences 这个map中

    3. 5s之后,根据key从 watchedReferences 中获取weak对象,然后检查ReferenceQueue中是否存在指定weak对象

    如果ReferenceQueue中存在weak对象,则说明Activity已经被回收;将weak对象从 watchedReferences 中移除

    如果ReferenceQueue没有找到weak对象,则说明Activity没有被回收,将对象从 watchedReferences 中移除,然后添加到 retainedReferences 这个map中

    4. 如果 retainedReferences 中对象数大于5个,则开始使用 haha 开始进行可达性分析,确定泄漏链

    相关文章

      网友评论

          本文标题:LeakCanary原理整理

          本文链接:https://www.haomeiwen.com/subject/bpjahltx.html