图片加载框架对比分析
glide
Google推荐的图片加载库,专注于流畅的滚动。
1.优点
1)使用RGB_565,内存占用比Picasso小一半。
2)图片展示和页面的生命周期一致(对context有类型要求)
3)相比Picasso,Glide在缓存策略和加载GIF方面略胜一筹
减少了缓存文件的大小
Picasso和Glide在磁盘缓存策略上有很大的不同。Picasso缓存的是全尺寸的,而Glide缓存的是跟ImageView尺寸相同的。 这样在下次显示的时候不需要重新调整大小,显示的会更快。
4)在页面不可见时停止网络请求,停止对图片的解析操作。
5)专注于流畅的滚动
6)当列表在滑动的时候,调用pauseRequests()取消请求,滑动停止时,调用resumeRequests()恢复请求。这样是不是会好些呢?
7)支持当你想清除掉所有的图片加载请求时
8)同时因为Glide和Activity/Fragment的生命周期是一致的,因此gif的动画也会自动的随着Activity/Fragment的状态暂停、重放。Glide 的缓存在gif这里也是一样,调整大小然后缓存。
9)支持gif
但是从我的一次测试结果来看Glide 动画会消费太多的内存,因此谨慎使用。
10)Glide还可以将任何的本地视频解码成一张静态图片。
11)使用glide,你可以配置图片显示的动画,而Picasso只有一种动画:fading in。
12)可以使用thumbnail()产生一个你所加载图片的thumbnail。
2.缺点
1)Glide 功能强大,但代码量大、流转复杂。在较深掌握的情况下才推荐使用,免得出了问题难以下手解决。
3.性能分析
比Picasso性能好一些。
4.风险(包大小等)
包大小:1.3mb
能否解决listview图片错位问题?可以
glide框架:点击打开链接
Picasso
1.优点
1)picasso能够根据网络状态调整线程池的并发数量
2)使用简单,源码简单易懂。Picasso 代码虽然只在一个包下,没有严格的包区分,但代码简单、逻辑清晰
3)内部维护了一个监控类,能够实时反馈内存缓存的命中率,使用状态等等。
2.缺点
1)ARGB_8888
2)Picasso的方式则因为需要在显示之前重新调整大小而导致一些延迟,Glide加载显示更快。
3.性能分析
4.风险(包大小等)
包大小:1.2mb
能否解决listview图片错位问题?
Picasa框架:点击打开链接
fresco
Facebook出的,不是一般的强大。
1.优点
1)使用了Native缓存(5.0以下,不包括5.0)
2)支持模糊渐进形式展示图片(类似webView)
3)能够根据View的展示状态控制网络请求和图片解析的状态(在页面不可见时停止对图片的网络请求和解析操作,在页面可见时恢复操作)
4)对多帧动画图片支持更好(未测试)
5)对外提供清除缓存的方法
2.缺点
1)ARGB_8888
2)体积较大,集成后增大apk体积
3)需要使用特定的view,需要xml支持
3.性能分析
4.风险(包大小等)
包大小:4mb
能否解决listview图片错位问题?
fresco框架:点击打开链接
volley imageloader
1.优点
2.缺点
Google官方出品,可惜不能加载本地图片~
3.性能分析
4.风险(包大小等)
Universal Image Loader
1.优点:这个应该是我们用的最多的图片加载框架了,但是并不支持动态图片的加载,比较好用
2.缺点
一个强大的图片加载库,包含各种各样的配置,最老牌,使用也最广泛。
3.性能分析
4.风险(包大小等)
综述
都能处理多种来源的图片,网络图片,本地图片,assets图片,都维护了内部的LruCache,Threadpool。
glide明显优于Picasso,但是glide和fresco之间的优劣对比还不知。
http://www.mamicode.com/info-detail-929571.html这篇文章的测试显示在内存方面,fresco比glide有优势一些。
如果可以驾驭fresco的话,建议还是选择fresco。
图片加载框架对比分析相关推荐
- 图片加载框架Picasso - 源码分析
简书:图片加载框架Picasso - 源码分析 前一篇文章讲了Picasso的详细用法,Picasso 是一个强大的图片加载缓存框架,一个非常优秀的开源库,学习一个优秀的开源库,,我们不仅仅是学习它的 ...
- Android Glide图片加载框架(二)源码解析之into()
文章目录 一.前言 二.源码解析 1.into(ImageView) 2.GlideContext.buildImageViewTarget() 3.RequestBuilder.into(Targe ...
- Fresco图片加载框架的介绍,相关开源库以及工具类的封装
Fresco图片加载框架的介绍,相关开源库以及工具类的封装 本文已授权微信公众号:鸿洋(hongyangAndroid)在微信公众号平台原创首发. 简介 Fresco 是Facebook开源的安卓上的 ...
- Fresco图片加载框架使用方法完全指南
简介 Fresco 是Facebook开源的安卓上的图片加载框架,也可以说是至今为止安卓上最强大的图片加载框架. 相对于其他几个图片加载框架,Fresco主要的优点在于更好的内存管理和更强大的功能,更 ...
- Carson带你学Android:主流开源图片加载库对比(UIL、Picasso、Glide、Fresco)
前言 图片加载在 Android开发项目中十分常见 为了降低开发周期 & 难度,我们经常会选用一些图片加载的开源库,而现在图片加载开源库越来越多,我们应该选用哪种呢? 今天.我就给大家介绍 & ...
- Android Glide图片加载框架(三)缓存机制
文章目录 一.缓存简介 二.缓存用法 内存缓存方式 磁盘缓存方式 三.缓存KEY 四.内存缓存 内存缓存流程 五.磁盘缓存 磁盘缓存流程 Android Glide图片加载框架系列文章 Android ...
- Android Glide图片加载框架(二)源码解析之load()
文章目录 一.前言 二.源码分析 1.load() Android Glide图片加载框架系列文章 Android Glide图片加载框架(一)基本用法 Android Glide图片加载框架(二)源 ...
- Android Glide图片加载框架(二)源码解析之with()
文章目录 一.前言 二.如何阅读源码 三.源码解析 1.with() Android Glide图片加载框架系列文章 Android Glide图片加载框架(一)基本用法 Android Glide图 ...
- Android Glide图片加载框架(一)基本用法
文章目录 一.前言 二.简介 三.基本用法 第一步:调用 Glide.with() 方法创建加载图片的实例 第二步:调用 load() 方法指定待加载的图片资源 第三步:调用 into() 方法绑定显 ...
最新文章
- android 监控app卸载,Android应用监听自身卸载
- SAP S4HANA 与 ECC的差异,多话不说,上图一张!
- POI导入大excel文件
- PostgreSQL示例demo
- C语言3中方法判断32还是64位机
- php语言的四种循环控制语句,PHP循环控制语句
- JS脚本病毒调试脚本-Trojan[Downloader]:JS/Nemucod
- 使用parted划分GPT分区(转)
- jQuery图片垂直滚动焦点图
- JDBC:随机生成车牌号,批量插入数据库
- 电子档案管理系统java,电子政务档案管理系统 [Java/JSP] struts+hibernate+spring-DZZW - CodeBus...
- 如何区分两列中不同数据_快速找出Excel表格中两列数据不同内容的3种方法!
- 【资源】资源分享(一)
- Ubuntu禁用触摸板
- wgs84坐标格式转换度分秒_WGS84经纬度坐标转换到西安80高斯投影坐标。
- java阶梯算法_上楼梯算法的java实现(转)
- 9.3(使用Date类) 编写程序创建一个Date对象,设置它的流逝时间
- python token_python 产生token及token验证的方法
- SCU软件设计与体系结构第三次测试试卷
- 正点原子STM32F103综合课程操作学习笔记(包含代码)