关键词:
图片框架发展史:
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。当然具体情况具体分析。
关于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... 查看详情