android glide读取图片字节流,从源码分析Android的Glide库的图片加载流程及特点

本文详细介绍了Glide的内部工作原理,包括RequestManager、Engine、DrawableRequestBuilder等核心组件,强调了其内存和磁盘缓存、Bitmap复用以及生命周期管理等特点。Glide支持gif和webp格式,自动管理请求与Activity/Fragment的生命周期,并通过Bitmap Pool优化内存使用。
摘要由CSDN通过智能技术生成

0.基础知识Glide中有一部分单词,我不知道用什么中文可以确切的表达出含义,用英文单词可能在行文中更加合适,还有一些词在Glide中有特别的含义,我理解的可能也不深入,这里先记录一下。

(1)View: 一般情况下,指Android中的View及其子类控件(包括自定义的),尤其指ImageView。这些控件可在上面绘制Drawable

(2)Target: Glide中重要的概念,目标。它即可以指封装了一个View的Target(ViewTarget),也可以不包含View(SimpleTarget)。

(3)Drawable: 指Android中的Drawable类或者它的子类,如BitmapDrawable等。或者Glide中基础Drawable实现的自定义Drawable(如GifDrawable等)

(4)Request - 加载请求,可以是网络请求或者其他任何下载图片的请求,也是Glide中的一个类。

(5)Model:数据源的提供者,如Url,文件路径等,可以从model中获取InputStream。

(6)Signature:签名,可以唯一地标识一个对象。

(7)recycle():Glide中Resource类有此方法,表示该资源不被引用,可以放入池中(此时并没有释放空间)。Android中Bitmap也有此方法,表示释放Bitmap占用的内存。

1.主要特点(1)支持Memory和Disk图片缓存。

(2)支持gif和webp格式图片。

(3)根据Activity/Fragment生命周期自动管理请求。

(4)使用Bitmap Pool可以使Bitmap复用。

(5)对于回收的Bitmap会主动调用recycle,减小系统回收压力。

2. 总体设计

067380d3f73c3f5babd23366017cb409.png

基本概念

RequestManager:请求管理,每一个Activity都会创建一个RequestManager,根据对应Activity的生命周期管理该Activity上所以的图片请求。

Engine:加载图片的引擎,根据Request创建EngineJob和DecodeJob。

EngineJob:图片加载。

DecodeJob:图片处理。

流程图

这里是大概的总体流程图, 具体的细节中流程下面继续分析。

79b95079d6106931c6d4029d029ea7c9.png

3. 核心类介绍

3.1 Gilde用于保存整个框架中的配置。

重要方法:

public static RequestManager with(FragmentActivity activity) {

Req

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值