Glide 框架
主要分为两大流程:
1.1 图片请求的构建流程。
1.2 图片缓存的获取流程。
图片请求构建流程内又分为四个模块:
2.1 用户态的请求模块: 用户使用 Glide 进行链式调用的时候会生成一个用户态的 Request。
2.2 真实的请求模块: 由于步骤2.1中会根据场景构建多种Request,因此在发起图片请求时需要进行收口,因此会使用用户态的 Request 构建一个真正的 GenericRequest 请求。
2.3 Request 生命周期管理模块: Glide 的一大特点是会将图片的请求和页面生命周期进行绑定,避免出现内存泄漏的风险,因此会有一个 Request 生命周期管理模块。
2.4 Registry中心模块: 由于 Glide 支持加载多种类型的数据,因此在注册中心会预先注册所支持类型处理类的信息。
图片缓存一共分为3大层,5小层:
3.1 内存缓存(2小层): 弱引用缓存、LruCache。
3.2 本地缓存(2小层): 本地 Result 缓存、本地 Source 缓存。
3.3 Source 数据源(1小层): 网络获取、本地 AssetPath 获取、其它本地图片。