多应用+插件架构,代码干净,支持一键云编译,码云点赞13K star,4.8-4.12 预售价格198元 广告
[TOC] # Glide缓存机制 1、Glide缓存主要分为2种:内存缓存和磁盘缓存 2、使用内存缓存的原因是:防止应用重复将图片读入到内存,造成内存资源浪费 3、使用磁盘缓存的原因是:防止应用重复从网络或其他地方下载和读取数据 # Glide三级缓存原理 1、读取一张图片时,获取顺序:Lru算法缓存 - 弱引用缓存 - 磁盘缓存 2、读取一张图片时,先去LruCache中寻找图片,如果LruCache中有直接取出使用,并将图片放入WeakReference中;如果LruCache中没有,则去WeakReference中寻找,如果WeakReference中有直接取出使用,如果WeakReference中没有则从磁盘缓存/网络中加载图片 3、将图片写入缓存时,写入顺序:弱引用缓存 - Lru算法缓存 - 磁盘缓存 4、图片不存在时,先从网络下载图片,将图片存入弱引用中,Glide采用一个acquired变量来记录图片被引用的次数, # 设计一个大图加载框架 1、封装参数:从指定来源到输出结果,中间会经历很多流程,首先进行封装参数 2、解析路径:图片的来源有多种,格式也不相同,需要规范化 3、读取缓存:为了减少计算,通常都会做缓存,同样的图片从缓存中取图片即可 4、查找文件/下载文件:如果是本地文件,直接解码即可;如果是网络图片,进行下载 5、解码 6、变换:解码出Bitmap后,做一些变换处理(圆角、滤镜等) 7、缓存:得到Bitmap后,进行缓存,方便下次使用 8、显示:显示结果,可以加些动画