开源框架
文章平均质量分 94
十 月
人生如梦
展开
-
Retrofit 2.0源码解读
Retrofit是基于OKhttp实现的网络请求框架,是对OKhttp的优秀封装,使用起来更加方便、简洁,特别还提供了RxJava的支持。Retrofit框架中采用了大量的设计模式来实现超级解耦,所以本文的初衷希望通过Retrofit源码的解读,来学习一下作者优秀的设计思想一个Retrofit网络请求,一般会经历如下步骤:1.创建Retrofit实例对象,配置请求相关参数,比如URL、请求...原创 2018-12-20 17:45:32 · 250 阅读 · 0 评论 -
RxJava 2.x 源码分析(三) 变换操作符map和flatMap
RxJava的操作符有很多,一般常用的有变换操作符,其中最主要是map和flatMap,本文将分别来讲解一下它们的实现原理。在上一篇文章:RxJava 2.x 源码分析(二) 线程切换原理中,讲到RxJava框架的执行流程,理解这个对我们源码的阅读是有很大帮助的,所以如果你还不懂的话,请移步到上一篇文章去读一下一:map的实现原理老规矩,先上一个例子: Observable.c...原创 2019-01-15 15:51:53 · 301 阅读 · 0 评论 -
RxJava 2.x 源码分析(二) 线程切换原理
在RxJava的使用过程中,通常会用subscribeOn来指定可观察者Observable的线程,用observerOn来指定观察者Observer的线程。本文将分析RxJava2.x的线程切换原理先来看一个例子Observable.create(new ObservableOnSubscribe<Integer>() { @Override ...原创 2019-01-14 18:48:39 · 592 阅读 · 0 评论 -
RxJava 2.x 源码分析(一) 分发订阅流程
本文将讲解两个知识点1.RxJava的数据分发和接收流程,即Observable(可观察者)如何分发数据和Observer(观察者)如何订阅数据2.RxJava是如何通过Disposable来取消订阅的,让Observer中断接收Observable分发的数据一:RxJava2.x的数据分发和接收通过一个简单的例子来看看RxJava的使用 //1.为了方便理解...原创 2019-01-14 12:35:19 · 452 阅读 · 0 评论 -
OKHttp 3.10源码解析(一):任务请求
OKhttp是目前Android端最热门的网络请求框架之一,它以高效的优点赢得了广大开发者的喜爱,以下是OKhttp的主要特点:1.支持HTTPS/HTTP2/WebSocket2.内部维护线程池队列,提高并发访问的效率3.内部维护连接池,支持多路复用,减少连接创建开销4.透明的GZIP处理降低了下载数据的大小5.提供拦截器链(InterceptorChain),实现reque...原创 2018-12-11 18:08:36 · 1794 阅读 · 2 评论 -
OKHttp 3.10源码解析(二):拦截器链
本篇讲解OKhttp的拦截器链,拦截器是OKhttp最大特色之一,通过拦截器链,可以拦截到请求数据或响应数据并对它们进行相关处理,我们还可以自定义拦截器interceptor上篇文章中我们讲到,不管是OKhttp的同步请求还是异步请求,最后都会调用getResponseWithInterceptorChain来完成请求,那么本篇文章就从这个方法开始,来分析OKhttp的拦截器链策略的实现...原创 2018-12-12 10:32:04 · 448 阅读 · 2 评论 -
OKHttp 3.10源码解析(三):缓存机制
本篇讲解OKhttp的缓存机制,在网络请求中能合理地利用本地缓存可以减少网络开销,提高响应速度。Http报头定义了很多有关控制缓存策略的域,因为OKhttp的缓存机制终究也是基于Http的缓存策略来实现的,所以我们先来认识一下Http的缓存策略一.HTTP缓存策略Http缓存有多种规则,根据是否需要向服务器发起请求将缓存分为两大类:强制缓存和对比缓存强制缓存是服务器会给客户端一个资源的...原创 2018-12-13 14:59:21 · 559 阅读 · 0 评论 -
OKHttp 3.10源码解析(四):连接机制
OKhttp的底层用的是Socket连接而不是URLConnection,所以整体来说还是比较复杂的,涉及到Http协议的封装和解封装、TLS/SSL安全协议的封装、Http2的封装等等,但还是非常值得我们去学习一下的,本篇文章不会对这些底层原理有详细的解析,但读完之后至少大概知道在网络请求中这些底层是如何实现的一.HTTP请求的优化1.keep-alive机制我们知道,一个HTTP的...原创 2018-12-14 22:55:03 · 1140 阅读 · 0 评论 -
EasySocket一款轻量级的Android端Socket框架
源码地址:https://github.com/jiusetian/EasySocketEasySocket的初衷是希望使Socket编程变得更加简单、快捷,因此项目在实现了Socket基本功能的基础上,还实现了TCP层面的请求回调功能。传统的Socket框架客户端发出一个请求信息,然后服务器返回一个应答信息,但是我们无法识别这个应答信息是对应哪个请求的,而EasySocket实现了将每个请求...原创 2019-06-12 19:46:26 · 27937 阅读 · 83 评论