Android常见图片加载框架比较

Android常见图片加载框架:

  1. Android Universal ImageLoader
  2. Picasso
  3. Glide
  4. Fresco
比较:

Android Universal ImageLoader:是很早开源的图片缓存,在早期被很多应用使用。ImageLoader 整个库分为 ImageLoaderEngine,Cache 及 ImageDownloader,ImageDecoder,BitmapDisplayer,BitmapProcessor 五大模块,其中 Cache 分为 MemoryCache 和 DiskCache 两部分。

Picasso :是 Square 开源的项目,且他的主导者是 JakeWharton,所以广为人知。Picasso和Square的网络库一起能发挥最大作用,因为Picasso可以选择将网络请求的缓存部分交给了okhttp实现。

Glide:是 Google 员工的开源项目,模仿了Picasso的API,在其基础上添加了扩展(比如gif等支持)。Glide默认的Bitmap格式是RGB_565,比Picasso默认的ARGB_8888格式的内存开销要小一半;Picasso缓存的是全尺寸的图像(只缓存一种),而Glide缓存的是跟ImageView尺寸相同的图像(即5656和128128是两个缓存) 。

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

注意
Picasso所能实现的功能,Glide都能实现,但是Picasso体积比起Glide小太多,如果项目中网络请求本身用的就是okhttp或者retrofit(本质还是okhttp),那么建议用Picasso,体积会小很多。
Glide的好处是大型的图片流,比如gif、Video。如果做美拍、爱拍这种视频类应用,建议使用。
Fresco在5.0以下的内存优化非常好,但是体积非常的大。
在使用时也有些不便(ps:只能用内置的一个ImageView来实现这些功能,用起来比较麻烦,我们通常是根据Fresco自己改改,直接使用他的Bitmap层)。
按体积算:Fresco>Glide>Picasso

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