前几篇文章看了OkHttp的源码,现在来看看OkHttp的架构吧。
首先从Okhttp的各个类流程来看看:
这里主要有六个关键类
OkHttpClient:这个类主要用于创建OkHttpClient,并初始化相关参数,例如是否使用cookie、使用的接口协议、初始化dispatcher、初始化线程池等。Request:请求类,主要封装用于网络请求的url等信息。Call(RealCall):RealCall类主要用于将请求交给分发器、添加五个默认的拦截器和用户自定义的拦截器等作用。是分发器和拦截器的入口。Dispatcher:Dispatcher主要用于call的调度。Interceptors:Interceptor采用责任链模式,主要有五个子类:RetryAndFollowUpInterceptor、BridgeInterceptor、CacheInterceptor、ConnectInterceptor、CallServerInterceptor。这五个子类依次处理request,然后再依次返回resposne。Response:Response是服务器返回的结果,由Intercept层层处理之后返回给application。
OkHttp的核心代码就在五个interceptor的逻辑中。之前我们已经分析过interceptor的调用流程,现在用图总结一下调用流程。
OkHttp的源码框架还有很多部分,例如socket、具体协议等还没仔细看。但是到目前为止,OkHttp的框架基本已经看完了。
后续有时间在看看android其他的framework吧。