Glide源码

一、with

  • with 传入是非 Application 参数,会在当前 Activity 添加一个隐藏的 Fragment,是为了让 Glide 知道图片加载的声明周期。
  • 如果传入的是 ApplicationContext 参数,只有当 App 进程被 kill 时,图片才会停止加载

二、三级缓存

  • Glide的缓存分为:内存缓存、磁盘缓存和网络缓存,类似与图片的三级缓存

1、内存缓存

  • 内存缓存分为活动缓存和 LruCache 缓存
  • 活动缓存:缓存正在使用的图片资源,底层实现是HashMap+弱引用,内部还维护了计数器,还加入了引用队列来配合GC的回收
  • LruCache 缓存:内部使用了LruCach缓存从活动缓存中移除的图片资源(计数器为0),使用图片时又会主动从此缓存移除,加入活动缓存。使用了LruCache算法(最近、最常使用最不容易被移除算法),底层实现是LinkedHashMap,且accessOrder=true

注意:LruCache 中移除的图片资源会加入到 Bitmap 复用池,给从未加载过的图片使用,节省重新开辟内存

2、磁盘缓存

  • 磁盘缓存分为资源缓存和原始数据缓存
  • 资源缓存:缓存解压后的图片资源
  • 原始数据缓存:缓存原始的图片资源

3、网络缓存

  • 上述都没有,从网络中拉取图片资源
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值