Volley UML 1 —— 架构
2014-11-16 20:33:42 49 举报
Volley是一种Android平台上的网络通信框架,其架构设计简单、易于使用。它采用了分层架构的设计模式,包括请求层、响应层、缓存层和线程池层等。其中,请求层负责封装网络请求,响应层负责解析服务器返回的数据,缓存层则提供了本地缓存机制以减少网络请求次数,而线程池层则通过线程池管理并发请求以提高性能。此外,Volley还提供了丰富的功能模块,如图片加载、文件上传/下载、HTTPS支持等。总体来说,Volley的架构设计简洁明了、功能丰富实用,是Android开发中不可或缺的网络通信框架之一。
作者其他创作
大纲/内容
概览
Request dequeued by CacheDispatcher
miss
Requet and Response
Response read from Cache and parsed
NetworkDispatcher #0
NetworkQueue
Parsed response delivered on MainThread
ResponseDelivery
- mEventLog : MarkerLog\t\t\t// 事件日志- mMethod : int \t\t\t\t\t// Request的方法,GET/POST/...- mUrl : String \t\t\t\t\t\t// Request的URL- mDefaultTrafficStatsTag : int \t\t// 用于流量统计的标签- mSequence : Integer \t\t\t\t// Request的序列号,用于实现FIFO- mRequestQueue : RequestQueue \t// 关联的请求队列- mShouldCache : boolean \t\t\t// 是否缓存该Request- mCanceled : boolean \t\t\t\t// 该Request是否被取消- mResponseDelivered : boolean\t\t// 该Request的Response是否已经分发- mRequestBirthTime : long \t\t\t// 该Request的发生事件- mRetryPolicy : RetryPolicy \t\t\t// 重试策略- mCacheEntry : Cache.Entry \t\t\t// 用于避免命中缓存的Request被踢出Cache- mTag : Object \t\t\t\t\t// 该Request的标签,用于批量取消Request- findDefaultTrafficStatsTag(String) : int+ addMarker(String) : void \t\t\t// 写事件日志- finish() : void \t\t\t\t\t\t// 通知RequestQueue,该Request已完成(成功/失败)+ cancel() : void// 负责解析原始的Responseabstract parseNetworkResponse(NetworkResponse response) : Response \t// 负责将解析完成的Response分发给Listenerabstract deliverResponse(T response) : void + parseNetworkError(VolleyError error) : VolleyError+ deliverError(VolleyError error) : void
...
Request
Cache(DiskBasedCache)
Request(abstract)
result : TcacheEntry : Cache.Entryerror : VolleyErrorintermediate : boolean
NetworkDispatcher #2
CacheDispatcher
ImageRequest
StringRequest
CacheQueue
network thread
JsonRequest
hit
JsonArrayRequest
JsonObjectRequest
Response
MainThread
NetworkDispatcher #1
cache thread
0 条评论
下一页