Android开源框架如何说-Gilde4

概念

  • Glide是google官方推荐的,而且使用起来非常的方便而且功能十分强大,链式调用

  • 主方法

    • with()Glide.with()用于创建一个加载图片的实例,with()方法可以接收 Context、Activity 或者 Fragment 类型的参数,加载配置自定义AppGlideModule ,创建隐藏的Fragment来同步监听生命周期与整个组件的生命周期绑定在一起
    • load() :用于初始化一些参数,指定待加载的图片资源,支持加载各种各样的图片资源,包括网络图片、本地图片、应用资源、二进制流、Uri 对象等等并且可以指定格式加载asGif,asBitmap,asDrawable
    • into(): 将图片获取并通过一系列处理后加载到相应控件中,这部分逻辑最为复杂,建立请求,然后通过Engine引擎类将请求进行统一的处理,里面开启了两个线程池(diskcacheService)磁盘缓存线程池和(SourceService)源线程池,并且进行了两层缓存,除了我们常见的内存缓存外,还进行了活动资源的缓存,其中内部的网络请求是通过android原生的httpurlConnection去完成的
    • Glide#with获取一个全局的单例对象RequestManagerRetriever,由它负责去获取一个和Context相关的并且对Context唯一的RequestManager对象,并且已经和宿主Activity生命周期绑定。
      RequestManager#load构建一个RequestBuilder对象,供用户设置大量参数,并返回一个RequestBuilder对象。
      RequestBuilder#into构建一个Target和一个Request对象,并完成它们的双向绑定关系。在交由RequestManager之前检查是否需要发起请求,如果需要则进入下一步,否则直接结束。
      RequestManager#track触发请求request的执行,从而简单的图片加载至此结束,后续request加载状态会反应至target上面,进而和target相关的控件会得到更新,自此一个图片就正确的呈现在ui界面上。
  • 常用的方法

    • placeholder()
    • diskCacheStrategy()
    • error()
    • override()
    • thumbnail()

整体架构(可以从以下几个每个点深入切入)

  • Bitmap:android2.3、2.3+、8.0+ 内存分布,BitmapFactor(图片压缩)
  • 缓存机制:LruCache、DiskLruCache(LinkedHashMap)
  • Lifecycle:
  • 流程调用链:
  • 数据加载模块:DataFetcher、ModelLoader

加载核心Engine类

  • 内存缓存 LruBitmapPool
  • 本地缓存 DiskLruCacheFactory
  • sourceService 处理源资源的线程池
  • diskCacheService 处理本地缓存的线程池
  • callback

缓存机制

  • 和其他三级缓存一样,Glide的缓存读取顺序是 内存–>磁盘–>网络
    • 内存缓存中加载图片,有两个层级,一个是MemoryCache,一个是ActiveResouces
    • 磁盘、网络加载则开启线程加载
  • Glide的缓存资源分为两种:原图(SOURCE) 、处理图(RESULT)
  • Glide自动就是开启内存缓存.skipMemoryCache(true) 不必要配置
  • 磁盘缓存.diskCacheStrategy()四种策略
简易流程
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 【Android 库 Glide】 引用 Android图片加载框架最全解析(一),Glide的基本用法Andro...
    Rtia阅读 10,931评论 0 22
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,204评论 25 709
  • 用碎片化的时间看完了这本厚厚的书,这里我谈两点感想: (一)我和运营 最初接触“运营”这个词,是因为曾经工作过的一...
    Linda_4c18阅读 708评论 0 0
  • 叨叨戚转自微信群 《冰雪后开车必备》原版见后附全文(扫码)。高效能的带优先级分类简化版如下: 【易忽略特别提醒】在...
    船长戚戈XGeek001阅读 1,261评论 0 1
  • 原来, 你也已经两鬓斑白了。 一直硬朗, 一直健康, 掩盖了你年老的事实。 躺下一周, 子息奔波一周。 未来三个星...
    清益阅读 1,690评论 0 1