Glide原理剖析,面试就这么答!(一)
Glide是近年来Android图片加载最常用的框架,同时也是面试时最容易被问到的。今天就通过面试题的方式来对Glide进行原理的剖析。
第一问:Glide与其他图片框架相比,有什么优势?
很多同学会说 Glide使用是链性写法,使用方便。当然可以这么说,但不能仅仅这么说。
我们先看一下with()方法,这个需要传一个context,这个context可以是activity,也可以是fragment。
不管传入哪种值得with方法,它的底层都是调用getRetriever()方法,当传入fragment的时候,通过fragment.getActivity()其实还是acitivity实例。那我们接下来继续看getRetriever()方法。
通过该方法获取到了一个requestManagerRetriever实例,在requestManagerRetrieve中调用了get()方法。
不管是哪一种get()方法,最终都会通过你传入的参数,获取到framentManager。
再通过framentManager得到RequestManagerFrament实例。这个为什么要创建fragment呢,fragment跟activity之间的生命周期是绑定的,难道是因为这个,我们看看RequestManagerFrament里面。
里面的确有生命周期的相关操作,所以通过这一连串的操作,最终将glide跟页面的生命周期绑定在一起。
所以结论:glide可以感知调用页面的生命周期,这就是优势。