volley框架

Android框架-Volley(三)

独自空忆成欢 提交于 2020-02-27 04:17:01
经过前面两篇文章的学习,我们已经掌握了Volley各种Request的使用方法,包括StringRequest、JsonRequest、ImageRequest等。其中StringRequest用于请求一条普通的文本数据,JsonRequest(JsonObjectRequest、JsonArrayRequest)用于请求一条JSON格式的数据,ImageRequest则是用于请求网络上的一张图片。 可是Volley提供给我们的Request类型就只有这么多,而我们都知道,在网络上传输的数据通常有两种格式,JSON和XML,那么如果想要请求一条XML格式的数据该怎么办呢?其实很简单,Volley提供了非常强的扩展机制,使得我们可以很轻松地定制出任意类型的Request,这也就是本篇文章的主题了。 1. 自定义XMLRequest 下面我们准备自定义一个XMLRequest,用于请求一条XML格式的数据。那么该从哪里开始入手呢?额,好像是有些无从下手。遇到这种情况,我们应该去参考一下Volley的源码,看一看StringRequest是怎么实现的,然后就可以模仿着写出XMLRequest了。首先看下StringRequest的源码,如下所示: /** * A canned request for retrieving the response body at a given URL

一口一口吃掉Volley(四)

走远了吗. 提交于 2020-02-27 04:15:45
欢迎访问我的 个人博客 转发请注明出处:http://www.wensibo.top/2017/02/17/一口一口吃掉Volley(四)/ 非常感谢你能够坚持看到第四篇,同时这也是这个Volley系列教程的最后一篇了。经过前三节的学习,相信你也已经懂得如何运用Volley提供的Request以及自定义Request了,这一节我将从源码的角度带领大家理解Volley的工作流程。 从newRequestQueue()看起 我们都知道,使用Volley最开始要做的就是使用 newRequestQueue() 获取一个RequestQueue对象,仔细看一下这个方法 newRequestQueue() public static RequestQueue newRequestQueue(Context context, HttpStack stack, int maxDiskCacheBytes) { File cacheDir = new File(context.getCacheDir(), DEFAULT_CACHE_DIR); String userAgent = "volley/0"; try { String packageName = context.getPackageName(); PackageInfo info = context.getPackageManager

Android常用库源码解析

那年仲夏 提交于 2019-11-27 15:49:59
图片加载框架比较 共同优点 都对多级缓存、线程池、缓存算法做了处理 自适应程度高,根据系统性能初始化缓存配置、系统信息变更后动态调整策略。比如根据 CPU 核数确定最大并发数,根据可用内存确定内存缓存大小,网络状态变化时调整最大并发数等。 支持多种数据源支持多种数据源,网络、本地、资源、Assets 等 不同点 Picasso所能实现的功能,Glide都能做,无非是所需的设置不同。但是Picasso体积比起Glide小太多。 Glide 不仅是一个图片缓存,它支持 Gif、WebP、缩略图。Glide 支持加载 Gif 动态图,而 Picasso 不支持该特性 Fresco在5.0以下的内存优化非常好,代价就是体积也非常的大,按体积算Fresco>Glide>Picasso UIL可以算是老牌最火的图片加载库了,该作者在项目中说明已经停止了对该项目的维护。这就意味着以后任何的 bug 都不会修复,任何的新特性都不会再继续开发,所以毫无疑问 UIL 不推荐在项目中使用了。 图片框架的缓存 MemorycCache图片内存缓存。默认使用了 LRU 算法。 DiskCache图片磁盘缓存,默认使用LruDiskCache算法,在缓存满时删除最近最少使用的图片 glide源码 一般看源码先看他的使用方法,通过使用的方法看对应的代码。 Glide.with(MainActivity.this