基本原理Volley采用生产者消费者模型,生产者(Volley的使用者)通过调用add方法给请求队列添加请求,缓存调度器和网络调度器作为消费者从请求队列取出请求处理,根据不同情况决定走缓存还是走网络请求数据,最后切换线程,将请求的数据回调给UI线程。创建请求队列Volley通过静态工厂方法newRequestQueue生成一个请求队列RequestQueue public static Req...
分类:
其他好文 时间:
2016-06-03 19:20:25
阅读次数:
213
Volley HTTP 缓存规则在介绍Volley的HTTP缓存机制之前,我们首先来看一下HTTP HEADER中和缓存有关的字段有:
规则
字段
示例值
类型
作用 新鲜度
Expires
Sat, 23 Jul 2016 03:34:17 GMT
响应
告诉客户端在过期时间之前可以使用副本
Cache-Control
no-cache
响应...
分类:
Web程序 时间:
2016-06-02 14:44:49
阅读次数:
295
在前面的【安卓缓存策略系列】安卓缓存之内存缓存LruCache和【安卓缓存策略系列】安卓缓存策略之磁盘缓存DiskLruCache这两篇博客中已经将安卓中的缓存策略的理论知识进行过详细讲解,还没看过这两篇博客的看官建议先去看一下,本博客将依据这些理论知识打造一个ImageLoader,实现照片墙的效果,关于照片墙的知识网上相关博客也很多,首先解释一下照片墙的概念:用一个GridView控件当作“墙...
分类:
移动开发 时间:
2016-06-02 14:29:34
阅读次数:
267
作为Google的亲儿子,Volley框架从诞生之日起就受到极大推崇,他简单且适用于频繁的网络操作环境中,并且是适用于异步的环境下,但是对于上传文件或者想要post一些较大数据的场合,显然他是束手无策的,这篇博文我会从源码角度带大家看看Volley框架到底是怎么流程;
平常我们使用Volley的标准步骤是:
(1)创建一个RequestQueue队列;...
分类:
移动开发 时间:
2016-06-02 14:21:43
阅读次数:
181
前言: 在学习LRU算法的时候,看到LruCache源码实现是基于LinkedHashMap,今天学习一下LinkedHashMap的好处以及如何实现lru缓存机制的。 需求背景: LRU这个算法就是把最近一次使用时间离现在时间最远的数据删除掉,而实现LruCache将会频繁的执行插入,查询、删除等 ...
分类:
编程语言 时间:
2016-06-02 13:33:28
阅读次数:
249
用一个月的下班之后玩耍时间的空余,阅读了Volley的源码,前面也记录了阅读过程,这篇旨在梳理一下Volley的工作流程。 通常,我们使用Volley,流程是很简单的。创建一个Request,再新建一个RequestQueue,最后把Request加入到RequestQueue中,接着我们就可以等待 ...
分类:
其他好文 时间:
2016-06-02 00:44:34
阅读次数:
163
android开发中网络通讯必不可少,目前使用率较高的http框架有Okhttp、nohttp、volley等等, 下面做一个用户登陆的demo,说明一下Okhttp的用法,废话不多说,看代码。 LoginActivity.java activity_login.xml 2016-05-31 14: ...
分类:
移动开发 时间:
2016-05-31 15:31:20
阅读次数:
353
在的StringRequest中,我们这样一个方法,还没有追踪过。 这个方法,会在我们请求结束后调用,但它是如何工作的,我们还没有阅读。通过对前面代码的阅读,我们会在ExecutorDelivery的run方法中,找到这个方法。 这整个过程要从RequestQueue的初始化说起: RequestQ ...
分类:
其他好文 时间:
2016-05-30 23:20:57
阅读次数:
235
在使用ListView,GridView控件时,由于其内部的重用机制,导致item中的内容会被清空,但是如果是网络中下载的内容特别是图片则会比较麻烦,因为经常需要从后台重新加载。为了提高用户体验,需要对图片等数据进行缓存,避免耗时的网络操作。 一、LruCache:android官方提供的用于在内存 ...
分类:
移动开发 时间:
2016-05-30 22:58:46
阅读次数:
181
前两篇我们介绍了一般的优化ListView方法以及DiskLruCache优化ListView,见android-----带你一步一步优化ListView(一)和android-----带你一步一步优化ListView(二),这一篇我们将从内存缓存的角度来完成ListView的优化,使用的是LruCache,它的主要算法原理是把最近使用的对象用强引用存储在
LinkedHashMap 中,并且...
分类:
移动开发 时间:
2016-05-30 15:15:57
阅读次数:
254