zoukankan      html  css  js  c++  java
  • Picasso, ImageLoader, Fresco, Glide 优劣

    Fresco:是Facebook 在今年上半年开源的图片缓存
    优点:
    1. 图片存储在安卓系统的匿名共享内存, 而不是虚拟机的堆内存中, 图片的中间缓冲数据也存放在本地堆内存,
    所以, 应用程序有更多的内存使用, 不会因为图片加载而导致 oom, 同时也减少垃圾回收器频繁调用回收 Bitmap
    导致的界面卡顿, 性能更高.
    2. 渐进式加载 JPEG 图片, 支持图片从模糊到清晰加载
    3. 图片可以以任意的中心点显示在 ImageView, 而不仅仅是图片的中心.
    4. JPEG 图片改变大小也是在 native 进行的, 不是在虚拟机的堆内存, 同样减少 OOM
    5. 很好的支持 GIF 图片的显示
    缺点:
    1. 框架较大, 影响 Apk 体积
    2. 使用较繁琐


    ImageLoader:很早开源的图片缓存,在早期被很多应用使用
    比较老的框架, 稳定, 加载速度适中, 支持进度监听,可以在 View 滚动中暂停图片加载;缺点在于不支持GIF图片加载,使用稍微繁琐, 并且缓存机制没有和http的缓
    存很好的结合, 完全是自己的一套缓存机制(完整大小).


    Picasso:Picasso是 Square 开源的项目
    使用方便, 一行代码完成加载图片并显示, 框架体积小,支持优先级处理, 支持延迟到图片尺寸计算完成加载
    缺点在于不支持 GIF, 并且它可能是想让服务器处理图片的缩放, 它缓存的图片是未缩放的, 并且默认使用
    ARGB_8888 格式缓存图片, 缓存体积大.


    Glide:是Google 员工的开源项目
    可以说是 Picasso 的升级版, 有 Picasso 的优点, 并且支持 GIF 图片加载显示, 图片缓存也会自动缩放, 默认使用
    RGB_565 格式缓存图片, 是 Picasso 缓存体积的一半.

    总结

    Glide 和 Picasso 都是非常完美的库。Glide 加载图像以及磁盘缓存的方式都要优于 Picasso,速度更快,并且 Glide 更有利于减少 OutOfMemoryError 的发生,GIF 动画是 Glide 的杀手锏。不过Picasso 的图片质量更高。如果使用 Glide,建议将 Bitmap 格式换成 ARGB_8888、让 Glide 缓存同时缓存全尺寸和改变尺寸两种。

    Picasso 所能实现的功能 Glide 都能做到,只是所需设置不同。两者的区别是 Picasso 比 Glide 体积小很多且图像质量比 Glide 高,但Glide 的速度比 Picasso 更快,Glide 的长处是处理大型的图片流,如 gif、video,如果要制作视频类应用,Glide 当为首选。
    Fresco 可以说是综合了之前图片加载库的优点,其在5.0以下的内存优化非常好,但它的不足是体积太大,按体积进行比较:Fresco>Glide>Picasso,所以 Fresco 在图片较多的应用中更能凸显其价值,如果应用没有太多图片需求,不推荐使用 Fresco。

    ggband
  • 相关阅读:
    JS处理日期&字符串格式相互转换
    Ajax 原理过程 同步与异步区别 优缺点
    元素居中
    width:100%;与width:auto;的区别
    URL、URI和URN三者之间的区别
    JavaScript encodeURI(), decodeURI(), encodeURIComponent(), decodeURIComponent()
    CSS 笔记三(Tables/Box Model/Outline)
    CSS 笔记二(Text/Fonts/Links/Lists)
    CSS 笔记一(Selectors/ Backgrounds/ Borders/ Margins/ Padding/ Height and Width)
    javascript,jQuery,trim()
  • 原文地址:https://www.cnblogs.com/ggband/p/10578383.html
Copyright © 2011-2022 走看看