UIL(Universal Image Loader)是用在Android平台的一款图片缓存框架,截止至今最新版本v1.9.5。目前市面上图片缓存框架有很多,UIL出现的比较早,作者在15年底停止了维护。
借此感谢开源者的付出及大家的支持。
近期学习了UIL v1.9.4源码,受益很深,也发现了自己的很多不足。Now,写记下自己对UIL的学习经历,给自己留下点回忆。
仅是自己的看法,不好的地方, 错误的地方,欢迎大家指正,不胜感激。
UIL
1.下载地址:https://github.com/nostra13/Android-Universal-Image-Loader
2.这是从官方剪切的图片load和display的流程图
从图中可以发现UIL使用了2级缓存来存储图片。
当ui线程display图片的时候,图片获取先后顺序:memory cache->disk cache->net。
load from net:下载图片->本地缓存->解析图片到bitmap->预处理bitmap->内存缓存bitmap->抛出处理后的bitmap->ui控件显示图片
load from disk cache: 解析图片到bitmap->预处理bitmap->内存缓存bitmap->抛出处理后的bitmap->ui控件显示图片
load from memory cache: 抛出处理后的bitmap->ui控件显示图片
3.项目框架结构
cache分支完成了memory cache 和disk cache
core分支包含了download,图片解析,bitmap预处理......
utils分支是通用工具类
接下来会对各个分支的功能点进行分析