android网络框架Volley整体来看主要有以下的接口和类:
1、基本数据类
Request:此类为请求类(抽象类),封装了请求体的一些属性,例如:请求方法、请求的地址、请求参数和请求头等。当然还有对应的一些方法,未实现的方法等。
NetworkResponse:网络响应类,其实是一个中间转化类,最终由Request解析此类生成本地的Response类。
Entry:缓存文件类,用来存放响应的数据。
CacheHeader:缓存头,缓存文件的标志(少了缓存文件的数据属性),可以和缓存文件相互转换。
Response:本地的响应体,主要是有三个属性,包括:解析之后的数据、关联的缓存体和错误。
2、接口
Cache:此接口主要用来构建缓存文件系统,同时其含有一个内部类Entry,用来存放响应的数据。
HttpStack:此接口主要是实现网络访问的接口,网络通信连接的操作就需要在此中进行。其中只有一个未实现的方法:performRequest(request,additiondsHeader),要求返回HttpResponse对象。
Network:网络访问的包装接口,返回对象为自定义的NetworkResponse对象。
ResponseDelivery:此接口将解析好的Response对象返回给发出请求的客户端。
3、功能类
HurlStack:实现了HttpStack接口,通过HttpUrlConnections建立网络通信,并将返回的数据构建为HttpResponse对象(当android版本大于等于2.2版本使用此类进行网络连接)。
HttpClientStack:实现了HttpStack接口,通过HttpClient建立网络通信,执行请求生成HttpResponse对象(当android版本小于2.2版本使用此类进行网络连接)。
BasicNetwork:实现了Network接口。包装了HurlStack或HttpClientStack对象,调用他们共同的方法,生成HttpResponse对象。通过HttpResponse对象构建自定义的NetworkResponse类。
DiskBasedCache:实现了Cache接口,覆写了所有的父类方法,构建了本地的缓存文件系统。
ExecuterDelivery:实现了ResponseDelivery接口。
Volley:用来生成RequestQueue类,使用Volley进行网络通信的第一步。
4、逻辑和线程类
RequestQueue:客户端发出请求时,此类负责根据请求的不同属性,放在不同的线程处理类中获取响应。同时也是本地和网络调度器生出的类。
CacheDispatcher:本地调度器,继承了Thread类。负责处理本地队列中的请求。
NetworkDispatcher:网络调度器。继承了Thread类。负责处理网络队列中的请求。
其中各类的关系如下图(图中黄色为类,浅绿色为接口,粉色为描述):
Volley网络通信框架的类UML图
这篇博客说是android网络框架volley学习之整体篇,但实际上还是缺此框架的异常处理系统。
错误之处,请大家指出,共同学习。