主流图片框架比较分析
最近我对几个主流图片框架进行了调研分析,整理出了文档:
四大图片加载框架总体对比:
性能测试:
以下是个人对Glide、Fresco对比UImageLoader(鉴于Glidei 基本是Picasso的升级版,所以这里没有对Picasso进行测试)进行的简单性能测试(仅供参考):
测试手机:华为荣耀8 Android7.0
使用的SDK版本:Glide4.0,Fresco1.8.0 UImageLoader1.9.5
测试方式为在相同网络环境和图片,测试10次以上取平均值:
1.加载速度测试:
加载单图:
加载图片分辨率为860*1000
不做任何图片变换处理
(注:内存缓存加载速度均在1ms~3ms左右)
测试多张图片同时加载总耗时:
20张图片,分辨率1000*1000左右,ImageView尺寸400*400:
从上表可以看出:
Glide和Fresco网络加载的速度都要明显快于ImageLoader,磁盘加载则相差不远,总体Glide比较快。
加载内存测试:
图片列表,一屏20张图片,图片都为分辨率1000*1000左右,ImgeView500*500:
(注:这里因为是7.0系统,所以没有体现出Fresco在native内存的优势)
从上面表格可以看出:ImageLoader占用内存比Glide、Fresco要少,ImageLoader和Fresco相对比较容易出现内存抖动现象,所以Glide相对来说加载列表图片更为合适。
总结:
1.三个图片框架,Glide平均速度最快。
2.Glide更适合列表图片,因为它更流畅。
3.Fresco更适合对图片效果要求高的应用。
4.在低于5.0版本的安卓手机Fresco内存优势比较大,不易发生OOM。
5.ImageLoader不能使用gif,只有Fresco可以使用动态的Webp。
6.Fresco包很大,使用需注意。