美文网首页
Retrofit 源码解析-2、整体流程介绍.md

Retrofit 源码解析-2、整体流程介绍.md

作者: 飞奔的口罩 | 来源:发表于2020-10-29 15:53 被阅读0次

一、Retrofit流程图

retrofit1.png

二、Retrofit调用逻辑图

retrofit 2.png

三、Retrofit 架构图

retrofit3.jpg

四、源码分析

(1)retrofit 类:入口类

(2)Platform 类:平台划分、默认配置类

1、Retrofit根据三个平台分别处理:android、ios、java8

我们这里只谈android平台

1、提供默认线程调度器:mianThreadExecutor()

2、提供默认适配器工厂:ExecutorCallAdapterFactory()

(3)ExecutorCallAdapterFactory 类:调度工厂类

(4)OkhttpCall 类:请求控制类

1、持有ServiceMethod对象。
2、通过ServiceMethod对象创建okhttp3.Call对象,并持有。
3、继承Call接口,实现enqueue()/excute()等方法。并在其中调用okhttp3.Call的enqueue()/excute()方法,发起网络请求。
4、解析response数据,通过serviceMethod的responseConverter.covert()转成需要的类型T。

(5)ServiceMethod 类:请求封装类

1、持有okhttp3.Call.Factory 的OkhttpClient对象

2、持有responseConverter 数据转换对象

3、持有HttpUrl、httpMethod、Headers、MediaType等网络请求元素,用于在toRequest()方法中拼接request请求对象。

(6)OkhttpClient 类:发起okhttp请求类

(7)Converter.Factory 类:数据转换类

1、这个转换类,很简单只有三个方法。分别提供三种Converter对象。
2、而Converter类更简单,只有一个convert()方法。
3、Converter仅仅是用来将数据转换而已。

(8)Executor 类:线程调度类

1、这个类在ExecutorCallbackCall类中被持有。
2、功能也很单一,仅仅是用于异步处理的,只有一个execute(Runnable r)一个方法。

相关文章

网友评论

      本文标题:Retrofit 源码解析-2、整体流程介绍.md

      本文链接:https://www.haomeiwen.com/subject/tfwluktx.html