博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
图片加载机制比较
阅读量:4591 次
发布时间:2019-06-09

本文共 965 字,大约阅读时间需要 3 分钟。

Picasso、Imageloader、Fresco、Glide的优劣

Fresco:

优点:

1)图片存储在安卓系统的匿名共享内存,而不是虚拟机的堆内存中,图片的中间缓存数据也存放在本地堆内存,所以,应用程序有更多的内存使用,不会因为图片加载而导致oom,同时也减少垃圾回收器频繁调用回收Bitmap导致的界面卡顿,性能更高

2)渐进式加载JPEG图片,支持图片从模糊到清晰加载

3)图片可以以任意的中心点显示在ImageView,而不仅仅是图片的中心

4)JPEG图片改变大小也是在native进行的,不是在虚拟机的堆内存,同样减少OOM

5)很好的支持GIF图片的显示

缺点:

1)框架较大,影响apk体积

2)使用教繁琐

ImageLoader、Picasso、Glide:这三者实现机制都差不多

* ImageLoader:比较老的框架,稳定,加载速度适中,缺点在于不支持GIF图片加载,使用稍微繁琐,并且缓存机制没有和http的缓存很好的结合,完全是自己的一套缓存机制

* Picasso:使用方便,一行代码完成加载图片并显示,框架体积小,缺点在于不支持GIF(新版好像已经支持了),并且它可能是想让服务器去处理图片的缩放,它缓存的图片是未缩放的,并且默认使用ARGB_8888格式缓存图片,缓存体积大

* Glide:可以说是Picasso的升级版(?),有Picasso的优点,并且支持GIF图片加载显示,图片缓存也会自动播放,默认使用RGB_565格式缓存图片,是Picasso缓存体积的一半

Glide:

优点:

1)使用简单

2)可配置度高,自适应程度高

3)支持常见图片格式Jpg png gif webp

4)支持多种数据源 网络、本地、资源、Assets等

5)高效缓存策略 支持Memory和Disk图片缓存 默认Bitmap格式采用RGB_565内存使用至少减少一半

6)生命周期集成 根据Activity、Fragment生命周期自动管理请求

7)高效处理Bitmap 使用Bitmap Pool使Bitmap复用,主动调用recycle回收需要回收的Bitmap,减少系统回收压力

 

转载于:https://www.cnblogs.com/anni-qianqian/p/8385757.html

你可能感兴趣的文章
初次使用Mybatis配置出现错误待解决
查看>>
linux中使用vi 打开文件时,能显示行号
查看>>
java性能调优实战
查看>>
larabel Artisan Command 使用总结
查看>>
mysql中查看一个字段中,有几个逗号
查看>>
C#中的常识
查看>>
安装SQL Server 2012 『企业中文版』
查看>>
win10 上安装虚拟机
查看>>
Mysql 数据迁移后 启动出错
查看>>
HDU 2473 Junk-Mail Filter 删点并查集
查看>>
HDU - 5491 The Next 2015 ACM/ICPC Asia Regional Hefei Online
查看>>
java常用的几种线程池比较
查看>>
psutil安装
查看>>
ES5扩展属性
查看>>
Django 应用开发(3)
查看>>
自己写的java实现的多路搜索树 B-Tree
查看>>
Snow Footprints CodeForces - 298A
查看>>
Choose and divide UVA - 10375
查看>>
Delete Them
查看>>
JSON跨域原理实现
查看>>