Glide加载图片

1.Glide.with()得到RequestManager;

2.RequestManager.load()创建request请求;

3.RequestTracker启动request运行,通过调用Engine.load()去执行图片加载任务,会先尝试从resource和cache加载;
  ActiveResources缓存和MemoryCache缓存,分别使用弱引用技术和LRU技术,构成两级内存缓存,两者有相似之外却又截然不同。

  相同之处:都是基于内存做缓存,运行在主线程;
  不同之处:ActiveResources依赖垃圾回收机制做淘汰运算,MemoryCache是强引用有最大内存限制,根据最近最少使用规则来淘汰
  优先级:ActiveResources优先级高于MemoryCache,ActiveResources当中保存的是活动对象,在ActiveResources某个item被回收时,如果其对应的真正的Resource没有被回收,会下放到MemoryCache当中,当然,从MemoryCache中取出的值,会存放在ActiveResources中;

4.创建EngineJob和DecodeJob具体去执行任务,在resource和cache加载无法命中的情况下通过Fetcher进行加载,
//Stage表示当前run执行到哪一步骤
  private enum Stage {
    INITIALIZE,//初始状态
    RESOURCE_CACHE,//剪裁图Disk缓存
    DATA_CACHE,//原图Disk缓存
    SOURCE,//远程图片
    ENCODE,//解析状态
    FINISHED,//完成
  }

5.Fetcher在数据准备好之后通过LoadPath执行加载任务;

6.ResourceDecoder进行decode()处理;

7.ResourceTranscoder进行ranscode()处理后返回得到的图片。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值