主流图片框架比较分析
最近我对几个主流图片框架进行了调研分析,整理出了文档:
四大图片加载框架总体对比:
性能测试:
以下是个人对Glide、Fresco对比UImageLoader(鉴于Glidei 基本是Picasso的升级版,所以这里没有对Picasso进行测试)进行的简单性能测试(仅供参考):
测试手机:华为荣耀8 Android7.0
使用的SDK版本:Glide4.0,Fresco1.8.0 UImageLoader1.9.5
测试方式为在相同网络环境和图片,测试10次以上取平均值:
1.加载速度测试:
加载单图:
加载图片分辨率为860*1000
不做任何图片变换处理
(注:内存缓存加载速度均在1ms~3ms左右)
测试多张图片同时加载总耗时:
20张图片,分辨率1000*1000左右,ImageView尺寸400*400:
从上表可以看出:
Glide和Fresco网络加载的速度都要明显快于ImageLoader,磁盘加载则相差不远,总体Glide比较快。
加载内存测试:
图片列表,一屏20张图片,图片都为分辨率1000*1000左右,ImgeView500*500:
(注:这里因为是7.0系统,所以没有体现出Fresco在native内存的优势)
从上面表格可以看出:ImageLoader占用内存比Glide、Fresco要少,ImageLoader和Fresco相对比较容易出现内存抖动现象,所以Glide相对来说加载列表图片更为合适。
总结:
1.三个图片框架,Glide平均速度最快。
2.Glide更适合列表图片,因为它更流畅。
3.Fresco更适合对图片效果要求高的应用。
4.在低于5.0版本的安卓手机Fresco内存优势比较大,不易发生OOM。
5.ImageLoader不能使用gif,只有Fresco可以使用动态的Webp。
6.Fresco包很大,使用需注意。
主流图片框架比较分析相关推荐
- 优雅地实现Android主流图片加载框架封装,可无侵入切换框架
项目开发中,往往会随着需求的改变而切换到其它图片加载框架上去.如果最初代码设计的耦合度太高,那么恭喜你,成功入坑了.至今无法忘却整个项目一行行去复制粘贴被支配的恐惧.:) 那么是否存在一种方式 能够一 ...
- 图片加载框架对比分析
glide Google推荐的图片加载库,专注于流畅的滚动. 1.优点 1)使用RGB_565,内存占用比Picasso小一半. 2)图片展示和页面的生命周期一致(对context有类型要求) ...
- 从TensorFlow到DL4J——主流深度学习框架对比分析
从TensorFlow到DL4J--主流深度学习框架对比分析 2022年2月22日 极链AI云 官网地址 点击注册 更多AI小知识,关注<极链AI云>公众号 文章目录 从TensorFlo ...
- php使用框架优缺点,主流PHP框架的优缺点对比分析
PHP是一种在国内外都比较流行的开源服务器端脚本开发语言.能够适应大中小型项目的开发需求.我们将在这篇文章中向大家介绍几款主流PHP框架及其相关优缺点评比,作为一个参考分享给朋友们. 主要参考的PHP ...
- Android 常用图片框架对比
在Android中,进行内存优化,最重要的优化处理是对图片进行内存的优化处理,毕竟图片占用的内存是非常大的,对于图片的内存处理,是android中内存优化的重中之重.目前开源的4大图片处理框架都对图片 ...
- 目标检测框架网络模型分析(二 双塔奇兵)
前言 我很长一段时间一直都在做自动驾驶的物体检测性能调优,所以想总结整理一些小网络和检测框架的经验. 文章会分成三个部分: 第一部分将参照知乎@YaqiLYU 对小网络(经典网络)的分析并且结合的自己 ...
- android图片框架对比(全)ImageLoader、Picasso、Glide、Fresco、Coil
一.直接表格对比 红色代表严重缺点 对比项 ImageLoader Picasso Glide Fresco Coil 库是否维护 false true true true true 是否支持gif ...
- Android APK的主流开源框架
主流开源框架 View框架 1.ButterKnife 2.ViewBinding 图片框架 1.Glide 快速高效的Android图片加载库,注重于平滑的滚动 2.Picasso Square 开 ...
- “黑”掉神经网络:腾讯披露新型AI攻击手法,主流机器学习框架受影响
来源:AI前线 本文约3000字,建议阅读6分钟. 本文为你介绍一种新兴的针对机器学习模型的攻击方式"后门攻击". "后门攻击"是一种新兴的针对机器学习模型的攻 ...
最新文章
- 超时时间已到。在操作完成之前超时时间已过或服务器未响应
- linux下oracle数据库服务和监听的启动停止
- rust服务器假人文件,rust游戏手机版-rust手游预约(腐蚀游戏手机版)-乐游网安卓...
- [iOS]利用Appicon and Launchimage Maker生成并配置iOSApp的图标和启动页
- python中有那几种赋值_详解Python列表赋值复制深拷贝及5种浅拷贝
- 注册页面的JSON响应方式详细分析(与前端页面交互方式之一)
- go语言结构体标签的意义
- html左侧隐藏菜单栏,如何制作一个炫酷的隐藏侧边栏菜单
- 蓝桥杯 ALGO-126 算法训练 水仙花
- 【equals与==比较】String的两种拼接
- 数据-第17课-栈课后练习
- xp sp3不让dword shoot
- 网管IT服务管理五个心得
- 图文详解:微信公众号申请流程
- mumu按键精灵_魂器学院,新手做的按键精灵脚本,基本每天的日常任务可做,mumu模拟器的...
- HTML 星空动图背景(canvas+JS)
- kotlin杂谈系列十二(Kotlin和Java的互操作)
- [问题已处理]-k8s出现Evicted状态
- 代码改变生活-文件重命名
- java实用教程第五版电子书,爱了爱了
热门文章
- 专家级解说缓存服务器负载均衡概念
- Android 7.0 ----- Direct Boot模式(AppClock)
- 一线互联网大厂中高级Android面试真题收录!大厂直通车!
- HTML jQuery实现点赞功能(模仿CSDN的样式)
- 判断ua字段中是否含有html5plus,浏览器UA,浏览器标识检测
- 九章量子计算机地位,“九章”量子计算机这么牛,到底有什么用?|【经纬低调分享】...
- FTDI FTD2XX 驱动学习笔记(一)
- python统计汉字个数是_使用 Python 统计中文字符的数量
- 伸缩门遥控器c语言程序,伸缩门遥控器匹配方法是什么呢? 如何学会电动门的遥控编码...
- C语言小游戏: 2048.c