1 OKHttp介绍
网络库一直是Android APP开发中至关重要的库,关系到加载速度,流量消耗等诸多问题。Android系统提供了HttpClient和HttpURLConnection两个网络库。相比HttpClient,OKHttp性能更好,且API设计更加易用。相比HttpURLConnection,OKHttp功能更加强大。目前采用OKHttp方案的APP越来越多,搞懂它的底层源码有助于我们更好的优化APP中网络方案,更快定位bug。也能学到很多好的设计模式。所以是时候搞懂OKHttp的源码了!
2 OKHttp框架
OKHttp分为两层,上层主要提供API给用户调用,实现了request的创建和发送。底层依据Http协议为上层提供sendRequest(), readResponse()和followUpRequest()等方法。
OKHttp分层十分清晰,上层与Http协议关联不大,而底层则依据Http协议实现了三个关键方法。这种良好的设计模式有利于以后在框架中加入对除了Http之外的协议的支持。目前有些团队已经在研究基于TCP来实现网络库。
根据OKHttp的分层,后面分别通过两篇文章来详细讲述。
OKHttp源码分析2 - Request的创建和发送
OKHttp源码分析3 - HttpEngine底层实现
3 我的封装网络库的SDK
目前网络库,不论是Google自家的,还是第三方库,都非