Glide原理剖析,面试就这么答!(一)

Glide是近年来Android图片加载最常用的框架,同时也是面试时最容易被问到的。今天就通过面试题的方式来对Glide进行原理的剖析。

第一问:Glide与其他图片框架相比,有什么优势?

很多同学会说 Glide使用是链性写法,使用方便。当然可以这么说,但不能仅仅这么说。

Glide原理剖析,面试就这么答!(一)_第1张图片

我们先看一下with()方法,这个需要传一个context,这个context可以是activity,也可以是fragment。

 
  

不管传入哪种值得with方法,它的底层都是调用getRetriever()方法,当传入fragment的时候,通过fragment.getActivity()其实还是acitivity实例。那我们接下来继续看getRetriever()方法。

Glide原理剖析,面试就这么答!(一)_第2张图片

通过该方法获取到了一个requestManagerRetriever实例,在requestManagerRetrieve中调用了get()方法。

Glide原理剖析,面试就这么答!(一)_第3张图片

 
  
 
  

不管是哪一种get()方法,最终都会通过你传入的参数,获取到framentManager。

Glide原理剖析,面试就这么答!(一)_第4张图片

再通过framentManager得到RequestManagerFrament实例。这个为什么要创建fragment呢,fragment跟activity之间的生命周期是绑定的,难道是因为这个,我们看看RequestManagerFrament里面。

Glide原理剖析,面试就这么答!(一)_第5张图片

里面的确有生命周期的相关操作,所以通过这一连串的操作,最终将glide跟页面的生命周期绑定在一起。

所以结论:glide可以感知调用页面的生命周期,这就是优势。

你可能感兴趣的:(框架原理)