1:ImageLoader 使用最广,因为出来最早,可惜没人维护了
2:有Picasso,简洁高效
3:有说Glide,Picasso升级,可以加载Gif,在Picasso基础上扩展了很多方法
4:有说Fresco,因为支持WebP,还是用了NDK来加载图片,减少JavaHeap的使用
Glide和Picasso是非常完美的库,Glide 加载图片以及磁盘缓存的方式都优于Picasso ,速度快,而且Glide有利于较少OOM,
Glide介意加载GIF ,但是Picasso加载的图片更清晰
区别:
Picasso 比Glide体积小,图片质量高,但Glide加载更快,可以加载GIF。 如果要制作视频应用,Glide是首选
ImageLoader:
优点:比较老的框架, 稳定, 加载速度适中,
缺点:在于不支持GIF图片加载, 使用稍微繁琐, 并且缓存机制没有和http的缓
存很好的结合, 完全是自己的一套缓存机制(完整大小).
Picasso:
优点:使用方便, 一行代码完成加载图片并显示, 框架体积小,
缺点:在于不支持 GIF, 并且它可能是想让服务器去处理图片的缩放, 它缓存的图片是未缩放的, 并且默认使用
ARGB_8888 格式缓存图片, 缓存体积大.
Glide
可以说是 Picasso 的升级版, 有 Picasso 的优点, 并且支持 GIF 图片加载显示, 图片缓存也会自动缩放, 默认使用
RGB_565 格式缓存图片, 是 Picasso 缓存体积的一半.减少oom
Fresco:
优点:
- 图片存储在安卓系统的匿名共享内存, 而不是虚拟机的堆内存中, 图片的中间缓冲数据也存放在本地堆内存,
所以, 应用程序有更多的内存使用, 不会因为图片加载而导致 oom, 同时也减少垃圾回收器频繁调用回收 Bitmap
导致的界面卡顿, 性能更高. - 渐进式加载 JPEG 图片, 支持图片从模糊到清晰加载
- 图片可以以任意的中心点显示在 ImageView, 而不仅仅是图片的中心.
- JPEG 图片改变大小也是在 native 进行的, 不是在虚拟机的堆内存, 同样减少 OOM
- 很好的支持 GIF 图片的显示
缺点: - 框架较大, 影响 Apk 体积
- 使用较繁琐