图片加载库Glide的使用简单且功能强大,其源码的架构对于项目架构和框架设计都有很好的学习和指导意义。
本系列虽是源码解析,但并不能面面俱到,解析会从流程入手,着重明确里程碑式的关键类。
Glide源码我分为几个层次:
源码设计逻辑简短总结:
在要加载的页面添加fragment监听页面生命周期(RequestManagerRetriever负责此工作)
每个fragment都有且仅有一个RequestManager与其对应
同一页面可能有多个图片加载请求,对应多个RequestBuilder和多个Target
RequestBuilder生成具体的SingleRequest请求
SingleRequest通过Engine查找资源是否在引用缓存或内存缓存中
SingleRequest通过DecodeJob加载其余各级缓存的资源,其中EngineJob充当线程调度的角色
网友评论