Android的图片加载框架比较

1.哪三大图片加载框架?
         1)      Picasso
         2)     Glide
         3)     Fresco
2.介绍:
     Picasso :和Square的网络库一起能发挥最大作用,因为Picasso可以选择将网络请求的缓存部分交给了okhttp实现。
    
     Glide:模仿了Picasso的API,而且在他的基础上加了很多的扩展(比如gif等支持), Glide默认的Bitmap格式是RGB_565,比      Picasso默认的ARGB_8888格式的内存开销要小一半;Picasso缓存的是全尺寸的(只缓存一种),而Glide缓存的是跟ImageView尺寸相同的(即56*56和128*128是两个缓存) 。

     FB的图片加载框架Fresco:最大的优势在于5.0以下(最低2.3)的bitmap加载。在5.0以下系统,Fresco将图片放到一个特别的内存区域(Ashmem区)。当然,在图片不显示的时候,占用的内存会自动被释放。这会使得APP更加流畅,减少因图片内存占用而引发的OOM。为什么说是5.0以下,因为在5.0以后系统默认就是存储在Ashmem区了。

3.总结:
         Picasso所能实现的功能,Glide都能做,无非是所需的设置不同。但是Picasso体积比起Glide小太多如果项目中网络请求本身用的就是okhttp或者retrofit(本质还是okhttp),那么建议用Picasso,体积会小很多(Square全家桶的干活)。Glide的好处是大型的图片流,比如gif、Video,如果你们是做美拍、爱拍这种视频类应用,建议使用。

Fresco在5.0以下的内存优化非常好,代价就是体积也非常的大,按体积算Fresco>Glide>Picasso
不过在使用起来也有些不便(小建议:他只能用内置的一个ImageView来实现这些功能,用起来比较麻烦,我们通常是根据Fresco自己改改,直接使用他的Bitmap层)


第一、Gif的支持

Fresco  支持

Glide     支持

Picasso 不支持

ImageLoader 不支持


第二、内存与性能


1、Fresco:

FaceBook出品,

优点:(1)支持图像渐进式呈现

      (2)大公司出品,后期维护有保障

缺点:(1)框架体积较大3M左右会增大apk的大小

          (2)操作方式不是特别简单,有一定学习成本

特点:有两级内存一级文件的缓存机制,并且有自己特别的内存区域来处理缓存,避免oom

2、Glide:

谷歌员工出品,Google推荐的图片加载库,专注于流畅的滚动

优点:(1)加载速度极快

   (2)框架体积小  四五百KB

缺点:(1)因为机制的选择不同,速度快了,但是图片质量低了 RGB565

特点:根据ImageView大小来进行缓存,也就是说一张图片可能根据展示情况来缓存不同尺寸的几份

3、Picasso:

Square出品,

优点:(1)图片质量高

缺点:(1)加载速度一般

特点:只缓存一个全尺寸的图片,根据需求的大小在压缩转换

4、Universal-Imager-Loader

sergey Tarasevice出品,

优点:(1)丰富的配置选项

缺点:(1)最近一次维护在15年底,后期有不维护的趋势,可能被当前图片框架替代

特点:三级缓存的策略



你可能感兴趣的:(Android的图片加载框架比较)