Android 热门开源框架解析
1. 系统剖析框架源码底层,助你快速突破瓶颈
2. 深入解读顶尖工程师框架源码,提升代码阅读与分析能力
3. 高效学习顶尖工程师的设计思路,提高代码设计与改造能力
Colin_Mindset
你关注到了我,是个概率极低的事件......
展开
-
【Android okhttp源码解析 一】okhttp框架简单介绍
1. 同步请求方法 以同步get请求为例,同步请求主要分为3步: a. 创建OkHttpClient对象和Request对象 b. 将Request封装成Call对象 c. 调用Call的execute()方法发送同步请求,进入阻塞状态,直到收到响应 2. 异步请求方法 以异步get请求为例,异步请求主要分为3步: a. 创建OkHttpClient对象和Request对象 ...原创 2018-04-01 00:22:04 · 524 阅读 · 0 评论 -
【Android okhttp源码解析 二】同步请求流程和源码分析
1. 创建OkHttpClient对象 这里使用Builder模式来给OkHttpClient对象的成员变量赋值,这里最重要的两个成员变量时dispatcher和connectionPool。其中, (1)dispatcher是一个分发器类,由它决定网络请求是直接处理还是缓存等待,对于同步请求,这个分发器只是把同步请求放到队列当中。 (2)connectionPool是一个连接池...原创 2018-04-01 00:24:31 · 383 阅读 · 0 评论 -
【Android okhttp源码解析 三】异步请求流程和源码分析
就同步和异步请求的方法调用来说,两者的差别不是很大。执行同步请求调用的是execute()方法,执行异步请求调用的是enqueue()方法,而它们两者的内部实现原理还是有很大差别的。 经过对同步请求的分析,我们已经对okhttp网络请求的方法执行很熟悉了,并且前两步都是一样的,我们这里再简单介绍一下。 第一步,创建okHttpClient对象和Request对象;第二步,创建Call对象;第三...原创 2018-04-01 00:27:05 · 461 阅读 · 0 评论 -
【Android okhttp源码解析 四】任务调度核心类dispatcher解析
okhttp如何实现同步异步请求,这就是由dispatcher来管理的。我们来借助一张图来理解一下dispatcher工作原理 每当有网络请求Call时,dispatcher会把这个请求推送到readyAsyncCalls队列中,而okhttp相比其他网络请求框架的高效之处就在于它内部维护了一个线程池,来高效地执行网络请求。我们来看下dispatcher源码。 1. dispatche...原创 2018-04-01 00:28:22 · 947 阅读 · 0 评论 -
【Android okhttp源码解析 五】拦截器流程和源码解析
拦截器是okhttp中非常重要的概念,我们来看下okhttp官网是如何描述其拦截器功能的。 它可以实现网络监听、请求以及相应重写、请求失败重试等功能。 我们来看看拦截器是如何工作的。 1. 还记得getReponseWithInterceptorChain()方法吗?我来看下其内部实现。 我们把原始请求originalRequest交给拦截器链chain,这个拦截器链就添加...原创 2018-03-30 11:31:59 · 520 阅读 · 0 评论