首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Glide源码之缓存机制Glide源码之缓存机制

在上一篇文章中,我们简要的讲了Glide加载一张网络图片的基本流程,整个流程有点长,也有点多,很多东西没有细讲。所以会对Glide一些重要的东西单独写文章讲解,以便大家对Glide细节了解更深。...Glide缓存设计 Glide分成内存缓存和磁盘缓存两个: 内存缓存:基于基于弱引用和LruCache(先看弱引用有无缓存,再看LruCache有无缓存) 磁盘缓存:基于DiskLruCache进行封装...: //cleanupActiveReference()方法源码: void cleanupActiveReference(@NonNull ResourceWeakReference ref) {...loadFromCache() 假如弱引用没有的话就会调loadFromCache()从LruCache获取,现在方法源码: private EngineResource<?...小结: Glide中首先会读取转换后的图片的缓存,然后再读取原始图片的缓存。但是存储的时候恰恰相反,首先存储的是原始图片的缓存,再存储转换后的图片。

1.4K10
您找到你想要的搜索结果了吗?
是的
没有找到

Glide源码解析(三)

本篇是 Glide 系列的最后一篇,主要讲一下 into 方法里面的逻辑。into 的逻辑也是最多最复杂的,可能需要反复阅读源码才能搞清楚。...Glide : https://github.com/bumptech/glide version : v4.9.0 RequestBuilder @NonNull public <Y extends...也就是说,当我们从网络中拿到了数据之后 Glide 会先将其缓存到磁盘上面,然后再从磁盘上面读取图片并将其显示到控件上面。...到了这里, Glide 所有加载图片、处理图片的逻辑都讲完了。剩下的,就是将图片显示到 ImageView 上面了。...相信你看完这一系列的文章,对 Glide 会刮目相看吧。 当然,本系列还有很多 Glide 中没讲到的知识点,比如缓存具体的应用等,如果想了解的同学可以自行去阅读下源码

1.3K30

Glide源码之基本流程加载

做android的我想大家都知道Glide,他的api很简单,让开发者可以很简单就实现加载一张图片,里面的下载,缓存都是框架内部处理好了,开发者可以快速处理自己的业务,Glide虽然用起来简单,可以源码一点都不简单...,看Glide源码一点都不轻松,里面的代码很复杂,这一篇先来理清Glide的图片基本加载流程。...源码分析 首先从 with(Context context)方法开始,里面代码如下: @NonNull public static RequestManager with(@NonNull Context...代码就是这个,Glide glide = builder.build(applicationContext);来看看里面的源码Glide build(@NonNull Context context...上面也就是Glide加载图片的基本流程,Glide源码满复杂的,单单整个基本流程就这么多了,可能中途也跳过一些没讲,没办法,更过细节后面另开一篇来讲吧。

69640

Glide源码阅读理解一小时

前言 这篇图、文、表、代码一起组成的 Glide 源码分析的文章是在上一篇文章 Android-Universal-Image-Loader源码分析 中之后的又一篇图片加载框架源码解析,它也具备了 ImageLoader....into(imageView); 上述是Fragmeng中Glide将一张网络图片显示到ImageView的代码,下面源码分析的时候我们也会用这段代码进行分析,看看这么简单的API到底是怎么实现的。...Glide源码分析 我们学习和了解一些框架主要不是看它某个功能的具体实现,主要是学习框架结构搭建和框架中模块的设计与实现。...boolean isActiveResourceRetentionAllowed) { /***部分代码省略***/ } /***部分代码省略***/ } 在阅读源码的时候...总结 因为上一篇文章是 Android-Universal-Image-Loader源码分析 ,所以这里主要是结合 ImageLoader 来和 Glide 进行比较。

2.3K10

Glide缓存流程

互联网技术 微信公众号 链接:https://mp.weixin.qq.com/s/cPLkefpEb3w12-uoiqzTig 作者:连凌能 Android上图片加载的解决方案有多种,但是官方认可的是Glide...Glide提供简洁易用的api,整个框架也方便扩展,比如可以替换网络请求库,同时也提供了完备的缓存机制,应用层不需要自己去管理图片的缓存与获取,框架会分成内存缓存,文件缓存和远程缓存。...一、综述 开始之前,关于Glide缓存请先思考几个问题: Glide有几级缓存? Glide内存缓存之间是什么关系? Glide本地文件IO和网络请求是一个线程吗?如果不是,怎么实现线程切换?...Glide网络请求回来后数据直接返回给用户还是先存再返回?...3、Glide本地文件IO和网络请求是一个线程吗?

1.5K20

Glide4.0源码全解析(二),load()背后的故事

书接上文,上回书说到GlideAPP和.with()方法背后的故事,那么我们接着按照我们开始的思路,按照Glide基本加载步骤中的三步走,with(),load(),into(),今天 我们来介绍一下...load()方法全面解析 通过上一篇文章Glide4.0源码全解析(一),GlideAPP和.with()方法背后的故事 我们可以知道.with()方法返回的是GlideRequests对象, /*...先来看一下RequestManager API: Class RequestManager API /** *用于管理和启动Glide请求的类。...其实不用看代码,想象都明白,你不传入资源文件,Glide为我们加载什么东西? ?...如上图,源码注释中也说道了,不过就算你不调用load()方法也不会出问题,因为isModelSet参数就是用来判断是否调用了load()方法,Glide已经帮我们处理好了。

44530
领券