Glide(4.11)主线源码解析
主线流程三部曲 (with-load-into)
Glide.with(context).load(url).into(imageview)
with
源码:
方法调用链:with() —> getRetriever(activity) -> Glide.get() -> checkAndInitializeGlide() -> getRetriever(activity).get(activity) —> supportFragmentGet()
内部原理:首先通过Glide.get()初始化Glide,如创建管理线程池与缓存的执行引擎Engine对象、构建registry、注册了编解码器等,再通过创建空白且持有Lifecycle的fragment来管理生命周期,在生命周期方法内通知RequestManger进行相关的操作,最终返回RequestManager对象
load
源码:
方法调用链:load() —> loadGeneric()