你必须要搞清楚的几大图片框架的区别
Posted 六月June June
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了你必须要搞清楚的几大图片框架的区别相关的知识,希望对你有一定的参考价值。
图片框架发展史:
afinal框架的afinalBitmap
Xutils的BitmapUtils
老牌框架universalImageLoader
著名开源组织square的picasso
FaceBook推出的fresco
google推荐的glide
对图片框架进行的测试:
内存测试,大图片测试,小图片测试,本地图片,网络图片当然还结合官方文档体验其特色功能
按照框架体积排序Fresco(3M左右)>Glide(小于500k)>Picasso(大于100k)
imageloader
githib地址:https://github.com/nostra13/android-Universal-Image-Loader
丰富的配置选项
使用相对麻烦。有一定的学习成本
不被维护的趋势,可能被后来图片框架所替代。
picasso:
githib地址:https://github.com/square/picasso
加载图片速度一般,加载大图容易引起卡顿甚至oom。
默认Bitmap格式是ARGB_8888格式,图片质量较高,但占用内存开销就较大。
缓存原始尺寸图片。
fresco:
github地址:https://github.com/facebook/fresco
中文文档:https://www.fresco-cn.org/docs/index.html
加载大图最厉害。
框架体积较大,在3M左右,会增大apk的大小;操作方式不是特别简单,有一定学习成本
有自己特别的内存区域(Ashmem 区)来处理缓存,避免oom。(但是5.0以后系统默认就存在了Ashmem区)。
glide:
github地址:https://github.com/bumptech/glide
google推出,是picasso的二次开发,专注于流畅的滚动。
1.支持gif和短视频
2.而且Glide默认的Bitmap格式是RGB_565,比Picasso默认的ARGB_8888格式的内存开销要小一半
3.支持与activity,fragment,application生命周期的联动,更智能管理图片
4.根据imageview的大小来缓存图片尺寸,少了每次剪裁重新渲染的过程,加载速度相对要快。
简而言之:加载速度较快,框架体积小,虽然图片质量较低(RGB_565),但是占用内存开销较小。
推荐:
看了区别后,大多情况下我推荐Glide,其次推荐Fresco,其次是老牌的Image-Loader和Picasso。当然具体情况具体分析。
以上是关于你必须要搞清楚的几大图片框架的区别的主要内容,如果未能解决你的问题,请参考以下文章