LeakCanary2.0简析

2021-07-01  本文已影响0人  MIRROR1217

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

1.LeakCanary的检测原理

1.1内存泄漏的原理

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

QQ20210701-0.jpg

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

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

上一篇下一篇

猜你喜欢

热点阅读