美文网首页
LeakCanary2.0简析

LeakCanary2.0简析

作者: MIRROR1217 | 来源:发表于2021-07-01 23:10 被阅读0次

    LeakCanary是一个Android中检查内存泄漏的框架,其使用方法简单,自动检测内存泄漏问题并且还能显示出泄漏路径,深受Android开发者喜欢。但是一直没有对它的原理进行分析,今天正好有空研究下。

    1.LeakCanary的检测原理

    1.1内存泄漏的原理

    内存泄漏:Java中不再需要的对象依然被引用,导致对象被分配的内存无法被回收。
    Java现在判断可回收对象采用的是可达性分析算法:当一个对象到GC ROOTS没有引用链项链时,则证明此对象是不可用的。

    QQ20210701-0.jpg

    在Java中,可作为GC ROOTS的对象包括以下几种:

    • 虚拟机栈中引用的对象
    • 方法区中静态属性引用的对象
    • 方法区中常量引用的对象
    • 本地方法栈中JNI引用的对象(一般说的Native方法)

    然后我们在猜测下,在页面关闭后,我们把里面的对象加入一个引用链,然后触发GC,再看里面的对象回收没,如果还存在,那么很有可能发生了内存泄漏。

    相关文章

      网友评论

          本文标题:LeakCanary2.0简析

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