Universal ImageLoader 是很早开源的图片缓存,在早期被很多应用使用。
Picasso 是 Square 开源的项目,且他的主导者是 JakeWharton,所以广为人知。
Glide 是 Google 员工的开源项目,被一些 Google App 使用,在去年的 Google I/O 上被推荐,不过目前国内资料不多。
Fresco 是 Facebook 在今年上半年开源的图片缓存
共同优点
1. 使用简单。都可以通过一句代码可实现图片获取和显示。
2. 可配置度高,自适应程度高。图片缓存的下载器(重试机制)、解码器、显示器、处理器、内存缓存、本地缓存、线程池、缓存算法等大都可轻松配置。自适应程度高,根据系统性能初始化缓存配置、系统信息变更后动态调整策略。
比如根据 CPU 核数确定最大并发数,根据可用内存确定内存缓存大小,网络状态变化时调整最大并发数等。
3. 多级缓存。都至少有两级缓存、提高图片加载速度。
4. 支持多种数据源。支持多种数据源,网络、本地、资源、Assets 等
5. 支持多种 Displayer。不仅仅支持 ImageView,同时支持其他 View 以及虚拟的 Displayer 概念。
区别
ImageLoader 的功能以及代理容易理解长度都一般。
Picasso 代码虽然只在一个包下,没有严格的包区分,但代码简单、逻辑清晰,一两个小时就能叫深入的了解完。
Glide 功能强大,但代码量大、流转复杂。在较深掌握的情况下才推荐使用,免得出了问题难以下手解决。
新闻热点
疑难解答