结合我之前在不同项目中用过的开源组件/框架,以思维导图的形式,整理了部分组件的特点及其参考比较,希望能够给需要的朋友提供一些帮助。
先从图片加载组件开始,后面计划整理网络、数据等方面的开源组件,欢迎继续关注。
文字版:
1、UIL(Universal Image Loader)
1.1 简介
1.1.1 Android平台老牌的图片下载和缓存函数库
1.1.2 功能强大、灵活且高度可定义
1.1.3 提供了一系列的配置选项以控制图片加载和缓存过程
1.2 特点
1.2.1 支持的特性
1.2.1.1 同步、异步的多线程图片加载
1.2.1.2 可自定义线程池/下载器/解码器/内存和文件缓存/图片显示选项等
1.2.1.3 支持内存缓存和文件缓存方式
1.2.1.4 可以实时监听图片加载流程、下载进度
1.2.1.5 根据控件大小对Bitmap进行裁剪,减少Bitmap占用过多的内存
1.2.2 可用性(是否方便):使用比较方便
1.2.3 技术支持
1.2.3.1 使用广泛、资料丰富
1.2.3.2 目前作者已经停止维护
1.2.4 函数库体积:162KB左右
2 Picasso
2.1 简介
2.1.1 Square公司开发,以画家毕加索为名
2.1.2 支持图片的加载和二级缓存功能
2.2 特点
2.2.1 支持的特性
2.2.1.1 在Adapter中取消不在视野的图片加载操作,避免错位问题
2.2.1.2 使用复杂的图片压缩转换来尽可能的减少内存消耗
2.2.1.3 自带内存和硬盘二级缓存功能(依赖Okhttp)
2.2.1.4 支持请求优先级
2.2.1.5 支持缓存调试操作
2.2.2 可用性(是否方便):使用非常方便
2.2.3 技术支持
2.2.3.1 使用广泛、资料丰富
2.2.3.2 作者仍在维护
2.2.4 函数库体积:120KB左右
3 二者比较
3.1 对于新项目特别是使用了Okhttp的,推荐使用Picasso
3.2 如果旧项目使用了UIL组件,一般情况下没有必要更换
4 关于Glide
4.1 Google官方的图片加载库
4.2 使用方便,和Picasso很相似
4.3 功能强大,不仅支持常见的jpg和png格式,还能显示GIF动画和视频
4.4 图片加载速度与内存占用方面优于Picasso
4.5 函数库体积相对Picasso较大(440KB左右)