SDWebImage库的理解(2)
来源:互联网 发布:杭州编程培训 编辑:程序博客网 时间:2024/06/02 02:48
SDWebImage库的作用:
通过对于UIImageView的类别扩展来实现异步加载更换图片的工作。
主要用到的对于象:
1、UIImageView (WebCache)类别,入口封装,实现读取图片完成后的回调
二、SDWebImageManager,对于图片进行解决的中转站,记录那些图片正在读取。
向下层读取Cache(挪用SDImageCache),可能向网络读取对于象(挪用SDWebImageDownloader) 。
实现SDImageCache和SDWebImageDownloader的回调。
3、SDImageCache,按照URL的MD5摘要对于图片进行存储和读取(实现存在内存中可能存在硬盘上两种实现)
实现图片和内存清理工作。
4、SDWebImageDownloader,按照URL向网络读取数据(实现部分读取和全部读取后再关照回调两种方法)
其他类:
SDWebImageDecoder,异步对于图像进行了一次解压
目前不明利剑为什么要做这么道工序。(现在清楚了,功效评释见下文)
风趣的点:
1、SDImageCache是怎么做数据解决的?
SDImageCache分两个部分,一个是内存层面的,一个是硬盘层面的。
内存层面的相当是个缓存器,以Key-Value的形式存储图片。当内存不足的时候会清除了所有缓存图片。
用搜索文件系统的方法做解决,文件更换方法是以时间为单位,剔除了时间年夜于一周的图片文件。
当SDWebImageManager向SDImageCache要资源时,先搜索内存层面的数据,如果有直接返回,没有的话去拜候磁盘,将图片从磁盘读取出来,然后做Decoder,将图片对于象放到内存层面做备份,再返回挪用层。
二、为啥必需做Decoder?
通过这个博客:
现在明利剑了,由于UIImage的imageWithData函数是每次画图的时候才将Data解压成ARGB的图像,
所以在每次画图的时候,会有一个解压操纵,这样效用很低,可是只有瞬时的内存需求。
为了提高效用通过SDWebImageDecoder将包装在Data下的资源解压,然后画在其它一张图片上,这样这张新图片就不再必要重复解压了。
这种做法是典范的空间换时间的做法。
- SDWebImage库的理解(2)
- SDWebImage库的理解
- SDWebImage的深入理解
- 我对SDWebImage的理解
- SDWebImage库结构的简单分析 SDWebImage库的作用
- SDWebImage的探索(1)
- SDWebImage源代码理解
- SDWebImage源码理解
- 关于SDWebImage内存缓存的一点简单理解-King
- 异步加载图片的库SDWebImage
- 异步加载图片的库SDWebImage
- SDWebImage库结构的简单分析
- web image sdwebimage 库的使用
- 第三方库SDWebImage的使用
- 第三方库SDWebImage的详解
- 新版SDWebImage的使用(转)
- iOS开发之SDWebImage(一个可管理远程图片加载的类库)的使用
- SDWebImage的使用
- UVA live 2678 - Subsequence
- php开发的简易扫雷游戏
- word
- Servlet3.0的文件上传
- android 点击ListView 抓取选中项的隐藏值
- SDWebImage库的理解(2)
- 所谓PHP分页也就这么回事
- Head First设计模式笔记
- 一段实现井字形表格的CSS,兼容IE7、IE8、IE9、IE10、Firefox、Chrome
- 归并排序算法
- java 生产者与消费者
- xen-qemu初始化(1)
- 修复被木马或病毒隐藏的文件
- Android基础之错误Failed to install