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

六月JuneJune 六月JuneJune     2022-12-14     167

关键词:

图片框架发展史:

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。当然具体情况具体分析。


关于http协议,你必须要知道的(代码片段)

引言HTTP协议是HyperTextTransferProtocol(超文本传输协议)的缩写,是用于从万维网服务器传输超文本到本地浏览器的传送协议。HTTP是基于TCP/IP协议通信协议来传递数据(HTML文件,图片文件,查询结果等)。它不涉及数据包(packet)传... 查看详情

你必须要会的测试用例基本功(代码片段)

摘要随着软件系统规模的持续增大,业务复杂度的持续增加,软件测试的复杂度也随之越来越大。而软件测试工作复杂度的直接体现就是测试用例编写、维护、执行和管理,所以编写易读、易维护和易管理的测试用例... 查看详情

作为web开发人员,你必须要知道的问题!(持续更新)

GET和POST的区别 GET请注意,查询字符串(名称/值对)是在GET请求的URL中发送的:/test/demo_form.asp?name1=value1&name2=value2GET请求可被缓存GET请求保留在浏览器历史记录中GET请求可被收藏为书签GET请求不应在处理敏感数据时使用GET... 查看详情

自动化脚本如何切换环境?pytest这些功能你必须要掌握

测试人员每天都跟不同的环境打交道,比如线上环境,测试环境,预上线环境等等,那么作为自动化测试人员写的代码,我们也要具备能自由切换环境的能力,那么今天小编就给大家聊一下,如何能让我们python语言写的测试用例... 查看详情

深入集合类系列——你必须要知道的两棵继承树

查看详情

德到课堂---你必须要懂的十大职场生存法则

德到领袖与你分享:你必须要懂的十大职场生存法则在职场中,总需要有一些生存规则,那么什么样的生存法则才适用呢,今天就来分享一下你必须要懂的十大职场中的生存规律。01十大职场生存规律第一:男女搭档干活不累。... 查看详情

面向物联网的几大开源操作系统

在过去的十年间,大多数新型开源操作系统已从移动市场转向物联网市场。本文介绍了面向物联网的许多新型开源操作系统。我们之前的文章介绍了开源物联网框架,以及面向物联网和消费者智能家居设备的Linux和开源开发硬件... 查看详情

defi“钱从哪来”?一个大多数人都没搞清楚的问题

这是白话区块链的第1683期原创 作者|@shivsakhuja出品|白话区块链(ID:hellobtc)DeFi起步于2018年,蛰伏一年之后在2019年崭露头角,成为公认的DeFi元年。随后,链上流动性的急剧增长让2020年成为DeFiSumm... 查看详情

关于程序国际化你必须要知道这事

银弹谷零代码开发平台V百科|新功能:关于国际化你必须要知道这事小张最近有一个烦恼!他们公司最近接了一个跨国合作的项目,小张因为业绩优秀英语功底扎实,也有多年做项目的经验,所以就被领导派去做项目负责人。但... 查看详情

关于ffmpeg-php你必须要知道的

1#PHPFFmpeg23[![BuildStatus](https://secure.travis-ci.org/PHP-FFMpeg/PHP-FFMpeg.png?branch=master)](http://travis-ci.org/PHP-FFMpeg/PHP-FFMpeg)45[![SensioLabsInsight](https://insight.sensiolabs.com/pr 查看详情

关于配置,你必须要知道这一点....(代码片段)

kafka管控平台推荐使用滴滴开源的Kafka运维管控平台(戳我呀)更符合国人的操作习惯、更强大的管控能力、更高效的问题定位能力、更便捷的集群运维能力、更专业的资源治理、更友好的运维生态、BliBli视频:石臻臻的杂货铺kafka的... 查看详情

自己搞清楚的第一个树结构,用树生成全排列(代码片段)

importjava.util.Arrays;importjava.util.HashSet;importjava.util.LinkedList;importjava.util.Scanner;importjava.util.Stack;publicclassMain07publicstaticvoidmain(String[]args)Scannersc=newScanner(System 查看详情

自己搞清楚的第一个树结构,用树生成全排列(代码片段)

importjava.util.Arrays;importjava.util.HashSet;importjava.util.LinkedList;importjava.util.Scanner;importjava.util.Stack;publicclassMain07publicstaticvoidmain(String[]args)Scannersc=newScanner(System 查看详情

oracle!你必须要知道的knowledgepoints(入门篇)(代码片段)

一、入门oracle有四个用户,分别为sys、system、sysman和scott,其中sys是oracle权限最高的用户,类似于Linux系统的root,scott是实例用户,上课就以这个用户里的三张员工表empno、dept、salgrade作为示例来授课。启动服务1.快捷键ctrl+alt+del打... 查看详情

oracle!你必须要知道的knowledgepoints(下)(代码片段)

子查询什么是子查询当查询中的限制条件需要另一个查询提供时,我们可以把两个查询语句嵌套起来,提供条件的查询语句作为子查询。子查询,也叫内部查询,先于主查询执行,子查询的结果被用于主查询。子查询分为单行子... 查看详情

你必须要知道的雪崩穿透预热更新降级

以前总觉得,写得一手好Java代码,走遍天下都不怕,后来随着时间得推移,才意识到程序的高效性流畅性才是最重要最重要的。所有的技术都是前人不断实践突破革新留下的产物,它们的存在以及运用一定有... 查看详情

核心篇,你必须要会的dockerfile指令详解(代码片段)

一、Dockerfile介绍在前面的文章(https://dongshao.blog.csdn.net/article/details/107389320)中我们介绍了若干种构造镜像的方式,其中一种方式就是基于Dockerfile构造镜像关于使用Dockerfile构造镜像的演示案例,请参阅上面的链接二、Dockerf... 查看详情

这10个奇妙的python库,你必须要试试!

导读:Python有着很多很酷的第三方库,可以使任务变得更容易。今天就给大家分享10个有趣的Python库,每个都非常实用!作者:小F来源:法纳斯特(ID:walker398)这10个库分别是speedtest、socket、te... 查看详情