Android三大图片框架的比较

来源:互联网 发布:h3c交换机禁止mac 编辑:程序博客网 时间:2024/05/01 02:06

主要的图片框架:Fresco、Glide、Picasso,由于ImageLoader现已不再更新,这里将不再细说


Fresco:
特点:

1、最大的优势便在于5.0以下(最低2.3) bitmap的加载,在5.0以下系统,Fresco将图片放到一个特别的内存区域(Ashmem),而且图片不显示时,占用的内存会自动被释放,这会使APP更加流畅,减少因图片内存占用而引发的OOM。5.0以后的系统默认存储在Ashmem区了


2、图片的渐进式呈现,图片先呈现大致的轮廓,然后随着图片下载的继续,逐渐成仙清晰的图片,这对于慢网络对说,用户体验更好。


3、支持加载Git动态图和Webp格式的图片


缺点:

框架体积比较大,3M左右,会增加APK的大小



Glide:
特点:

1、Glide的with()方法可以接收activity和fragment,图片的加载会和Activity和Fragment的生命周期保持一致,比如Paused暂停加载,Resumed的时候重新加载


2、 图片默认格式为RGB565,而不是ARGB888,内存开销更小,虽然图片的清晰度差些。


3、图片缓存的尺寸是和ImageView一样的,这使得图片加载更快


4、支持加载Git动态图


Picasso:
特点:

1、图片质量高,但加载速度一般,

2、只缓存一个全尺寸的图片


总结:

Picasso能实现的功能,Glide也可以做,但Picasso体积比起Glide小而且如果项目中网络请求用的是OkHttp或者Retrofit(本质还是OkHttp),那么建议用Picasso,体积会小很多。Glide的好处是大型的图片流,比如Git,Vedeo,例如美拍、爱拍这种视频类应用。Fresco在以下的系统内存优化非常好,但代价就是体积大。


0 0