你必须要搞清楚的几大图片框架的区别

Posted 六月June June

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了你必须要搞清楚的几大图片框架的区别相关的知识,希望对你有一定的参考价值。

图片框架发展史:

afinal框架的afinalBitmap

XutilsBitmapUtils

老牌框架universalImageLoader

著名开源组织squarepicasso

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.支持与activityfragmentapplication生命周期的联动,更智能管理图片

4.根据imageview的大小来缓存图片尺寸,少了每次剪裁重新渲染的过程,加载速度相对要快。

简而言之:加载速度较快,框架体积小,虽然图片质量较低(RGB_565),但是占用内存开销较小。

 

推荐:

看了区别后,大多情况下我推荐Glide,其次推荐Fresco,其次是老牌的Image-LoaderPicasso。当然具体情况具体分析。


以上是关于你必须要搞清楚的几大图片框架的区别的主要内容,如果未能解决你的问题,请参考以下文章

「架构师必备」关于网络优化你必须要知道的重点

你必须要知道的10款APP开发框架

学习web前端你必须要了解的主流框架!

你必须要知道java面试宝典

你必须要会的测试用例基本功

关于Http协议,你必须要知道的