版权声明:本文为博主原创文章,未经博主允许不得转载。
1、对volley源码结构的解析
源码有2个文件夹:
1.1、 volley包下:
1、VolleyLog.java:volley框架自定义的日志工具类。
VolleyError.java:继承Exception,自定义封装的异常类。
TimeoutError.java:继承VolleyError,还没有实现。
ServerError.java:继承VolleyError,表明误差响应错误响应。
ParseError.java:继承VolleyError,表明返回的数据不能解析。
NetworkError.java:表示是网络请求错误,继承VolleyError。
NoConnectionError.java:表示是不能建立网络连接,继承NetworkError。
AuthFailureError.java:表示发送请求时认证失败。
2、RetryPolicy.java:重试请求接口,内有几个简单的抽象方法。
DefaultRetryPolicy.java:实现RetryPolicy接口,提供默认的重试请求处理。
3、Cache.java:缓存接口,用字节数组存储。内部有一个Entry实体类,封装缓存的数据。
CacheDispatcher.java:为队列中的请求提供一个缓存,其继承Thread。其内部对队列中的请求做各种响应。
4、Response.java:封装了一个响应类。有2个回调接口Listener和ErrorListener,分别用于处理请求成功或者失败后的事情。
ResponseDelivery.java:提供一个接口,传递从网络或缓存中返回的数据。
ExecutorDelivery.java:实现ResponseDelivery接口,传递返回的数据或错误。
5、NetworkResponse:执行网络请求后返回的数据和头部信息。
Network.java:执行网络请求的接口。
NetworkDispatcher.java:分配一个线程去处理消息队列中的请求。继承Thread。
6、Request.java:封装了一个请求类,默认请求格式为UTF-8。实现了Comparable接口。可以在请求还未完成时取消它。
RequestQueue.java:一个调度线程池的请求调度队列。
1.2、 toolbox包下:
1、Authenticator.java:提供认证的接口。
AndroidAuthenticator.java:实现Authenticator接口。获取手机上的账户。
2、BasicNetwork.java:实现Network接口,
3、ByteArrayPool.java:字节数组池,是存储字节数组对象的库。其目的是为短促的请求提供一个缓冲区。
4、DiskBasedCache.java:实现Cache接口,缓存文件,直接缓存在硬盘中的指定目录。默认的磁盘使用的大小是5MB,但可配置。
NoCache.java:实现Cache接口,缓存不存在。
ClearCacheRequest.java:实现Request,异步请求用于清理缓存。
5、StringRequest.java、ImageRequest.java、JsonRequest.java都继承了Requset,分别在不同的场景下应用。
6、JsonObjectRequest.java、JsonArrayRequest.java都继承了JsonRequest,处理不同的json数据格式。
7、ImageLoader.java:图片加载类,辅助处理加载和缓存远程URL的图像。
NetworkImageView.java:自定义的ImageView控件。
8、HttpStack.java:一个HTTP栈的抽象接口。
HttpClientStack.java:实现HttpStack
HurlStack.java:实现HttpStack
HttpHeaderParser.java:解析HTTP头部
9、PoolingByteArrayOutputStream.java:继承ByteArrayOutputStream,使用字节池缓冲区分配,放置堆内存浪费。
10、RequestFuture.java:
11、Volley.java:实例化之后返回一个RequestQueue。