美文网首页
Android Glide Fresco Picasso 对比

Android Glide Fresco Picasso 对比

作者: 太极1 | 来源:发表于2020-04-16 11:09 被阅读0次

    基础对比

    glide fresco Picasso
    地址 https://github.com/bumptech/glide https://github.com/facebook/fresco https://github.com/square/picasso
    License BSD, part MIT and Apache 2.0 MIT Apache 2.0
    star 28k 16k 17.2k
    developer Google(bump) Facebook Square
    大小 100k 1M 2-3
    version V4.11.0 V2.1.0 V2.71828

    支持能力对比

    glide fresco Picasso
    支持webP
    视频缩略图
    Cache
    上手难度
    最低版本 14 9 14
    wrap_content 支持 不支持 支持

    内存对比

    glide fresco Picasso
    静态大图 24.2->23.8 23.3->22.7 24.7->24.3
    gif 34.6->34.1 27.2->26.7 不支持

    • 加载gif和webp fresco都需要引入新包才能支持

    • fresco不支持自动识别gif glide可以识别自动加载

    • fresco 虽然fresco内存开销小于glide,但是使用了native 内存

    • Java Heap是对于Java 虚拟机而说的,一般的大小上限是 16M 24M 48M 76M 具体视手机而定。
    • Native Heap是对于C/C++直接操纵的系统堆内存,所以它的上限一般是具体RAM的2/3左右。
    • Native heap增长到比较大的值的时候,占用了大量的RAM,可能会被memory killer杀掉
    • 使用adb shell dumpsys meminfo + packagename/pid 查看进程的内存信息

    优缺点:

    glide

    • 多种图片格式的缓存,适用于更多的内容表现形式(如Gif、WebP、缩略图、Video)
    • 生命周期集成(根据Activity或者Fragment的生命周期管理图片加载请求)
    • 高效处理Bitmap(bitmap的复用和主动回收,减少系统回收压力)

    • v3 v4 变化大

    fresco

    • 最大的优势在于5.0以下(最低2.3)的bitmap加载。在5.0以下系统,Fresco将图片放到一个特别的内存区域(Ashmem区)
    • 大大减少OOM(在更底层的Native层对OOM进行处理,图片将不再占用App的内存)
    • 适用于需要高性能加载大量图片的场景

    • 用法稍显复杂,可迁移性差
    • 底层涉及c++领域,阅读源码深入学习路线陡峭
    • fresco 不支持链式调用

    相关文章

      网友评论

          本文标题:Android Glide Fresco Picasso 对比

          本文链接:https://www.haomeiwen.com/subject/kszlvhtx.html