美文网首页
Glide 图片加载原理梳理

Glide 图片加载原理梳理

作者: itwillrain | 来源:发表于2021-03-24 18:32 被阅读0次

    glide 用法 Glide.with(mContext)
    .load(url)
    .into(iv);

    with ()方法返回 RequestManager---》用于请求的设置
    load()方法返回 RequestBuilder---》请求参数确认
    into()方法返回 ViewTarget 同时开始测量图片进行加载
    调用into方法时 创建一个request 默认为SingleRequest
    然后调用request 的begin() 开始请求;---》SingleRequest.onSizeReady()
    调用engine进行load
    先创建每个request的 EngineKey 用来区分不同的图片请求
    用key 先从活跃的缓存(loadFromActiveResources)文件去取图片资源 ---一级缓存
    从缓存汇中取图片资源(loadFromCache) --- 二级缓存
    从网络加载图片 EngineJob start开始加载图片 ---三级缓存

    网络加载图片 流程
    由EngineJob 启动DecodeJob 的run()方法执行runWrapped()---》runGenerators()--》currentGenerator.startNext() (SourceGenerator#startNext)--- loadData.fetcher.loadData()---
    HttpUrlFetcher#loadData --- HttpUrlFetcher#loadDataWithRedirects()获取图片资源InputStream
    利用 HttpURLConnection 《内部使用okhttp》

    获取资源inputstream 流开始回调callback.onDataReady--》 cb.onDataFetcherReady--》decodeFromRetrievedData()--notifyEncodeAndRelease()--notifyComplete-- entry.executor.execute(new CallResourceReady()---SingleRequest#onResourceReady()--target.onResourceReady()--ImageViewTarget#onResourceReady---BitmapImageViewTarget#setResource---显示图片view.setImageBitmap(resource);

    相关文章

      网友评论

          本文标题:Glide 图片加载原理梳理

          本文链接:https://www.haomeiwen.com/subject/zxehhltx.html