glide图解分析
2021-06-25 17:27:05 1 举报
画图理解glide原理
作者其他创作
大纲/内容
绑定生命周期
本地:缓存转化后图
注册表:存放负责图片的加载、解码、编码的类
engine.load
不缓存任何内容
网络图比转化耗时
调用into方法
自动
主要操作
负责存放engine引擎和Registry等重要的引用
RESOURCE
2、内存缓存
磁盘
传入context,将无ui的fragement绑定到页面上
Engine
onSizeReady
begin
Engine中具体的调用
作用
内存缓存使用类
缓存经过缩放等转换后的图片资源
原因
宽
针对bitmap对象的复用
SingleRequest
GlideContext
3、资源缓存
Target引用
转化后和原始数据
从SourceGenerator中查找图片(网络就从网络找、本地就走本地)
into执行流程
从DataCacheGenerator中查找图片
返回资源
本地读取图片快
DATA
当内存中没有获取到时候,调用waitForExistingOrStartNewJob走下面
从ResourceCacheGenerator查找图片
主要Lru
直接Glide中获取
.load(url)
原始数据
1、活动缓存
glide图解分析: Glide.with(context).load(url).into(imageView)
比如:1、加载资源线程池初始化2、内存和磁盘缓存辅助类
MemoryCache cache=new LruResourceCachekey和value存放和活动缓存的方式相同(最近加载过的图片资源)
保存地址(model)
原始图片
AUTOMATIC
默认内存缓存打开
Registry
SingleRequest中方法调用
加载资源
默认磁盘缓存自动
磁盘缓存使用类
网络:缓存原图
高
options等
ALL
管理图片资源的加载
RequestManager
builder方式传入图片加载配置
4、原始缓存
目的:开启获取资源之路
返回
BitmapPool
之前转化好的图片,比如圆角等
主要hashmap+弱引用
路径
RequestBuilder
engine引擎通过构造传递过来
作用:1、持有传入的imageview引用2、将从Engine中返回的图片资源回调给imageview,显示界面3、来源于into构建的对象拥有imageview
key
buildRequest
NONE
磁盘缓存分两个原因:1、资源缓存主要是变换后的资源2、原始缓存是原始的资源文件场景:同一张图片,先在100*100的view上显示,然后在200*200的view上显示。分析:如果不缓存变换后的图,那么每次都需要变换。如果不缓存原图,那么每次都需要重新网络下载原图
Glide对象初始化
内存
Glide.with(context)
网络加载
磁盘缓存的策略
0 条评论
回复 删除
下一页