1. 前言
1.1 现有Glide V4源码分析文章
现有的Glide V4源码分析的文章包含许多优秀的文章:
- 【1】对Glide的Load过程进行详细的分析: blog.csdn.net/github_3330…
- with过程分析相近,思考深入
- load过程相近,但是过于冗长
- 【2】对Glide的主要功能和主要的类进行了介绍:blog.csdn.net/json_it/art…
- 总结了Glide主要特点
- 【3】用图文的方式对Glide的工作过程进行了详细分析:juejin.im/entry/58676…
- 里面的图非常经典
这些文章都对Glide源码分析比较透彻,【1】里面贴了太多源码,导致文章冗长,很难阅读。【3】通过图文的方式解决了这个问题,但是对load过程介绍过于简化。因此,本文将以图文的方式对glide的工作原理进行分析。主要包含
- RequestManager的构建过程
- Request的构建过程
- Load的过程
1.2 Glide基本组件简介
1.3 分析的案例
为了简化问题,减少分析,如下demo所示,本文分析限定如下范围:
- model类型为url
- target为ImageView
Glide.with(mContext)
.load(url1)
.into(imageView);复制代码
2. RequestManager的创建过程(with过程)
2.1 Context为ApplicationContext的情况
2.2 Context为Activity或者Fragment的情况
相关类图
3. RequestBuilder创建过程(load过程)
4. 资源请求和绑定过程(into)
4.1 创建Request
4.2 执行Request,并且绑定到View上面