Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >深入浅出android热门框架okhttp和retrofit的原理

深入浅出android热门框架okhttp和retrofit的原理

作者头像
我就是马云飞
发布于 2018-06-22 09:32:32
发布于 2018-06-22 09:32:32
1K0
举报
文章被收录于专栏:我就是马云飞我就是马云飞

大家好我是张拭心,最近参与公司项目的基础网络模块重构,在对 OkHttp 封装、拓展的过程中发现了很多疑惑的地方,于是深入阅读了一下 OkHttp 和 Retrofit 的源码。

第一次读完只了解了基本的请求过程,在和架构师大佬交流后发现他提到的关键字我都不清楚;于是花了一个周末又把不懂的核心读了一次,自信满满地去和大佬交流,发现大概认识有了,细节还是不理解;于是又花了一周下班时间查资料、看源码,把细节捡了一遍,前前后后总共花了一个多月。

封装、实现一个框架时最快的方法是参考、学习现有的, 在封装 OkHttp 前我学习借鉴了 Retrofit Okgo,其中还是觉得 Retrofit 的设计最为精巧。

为了让自己有动力将这段时间学习的收获总结一下,也为了让读者可以少花一些时间顺滑地掌握这两个框架的背后原理,我决定将这一个多月学习收获总结成几篇文章,从总到分、从浅到深地介绍 OkHttp 和 Retrofit 的原理,让读者可以清楚地掌握使用这两个框架发起请求、拿到响应的背后,框架都帮我们做了什么。

熟悉它俩的源码和流程不仅可以方便我们在项目中定制,还可以提升我们的基础架构能力,此外在面试中如果你可以对 OkHttp 的源码娓娓道来,同时能对 Retrofit 的封装思路谈的风声水起,面试官一定会被你征服!

因此掌握 OkHttp3 和 Retrofit 实乃安卓开发工程师进阶必备技能。

本场 Chat 将会用生动活泼、清晰易懂的语言和流程图讲解 OkHttp3 和 Retrofit 的源码和流程,让读者一次搞定这两个网络框架,为提升水平、跳槽涨薪增加更多把握。

通过本场 Chat 你将主要学到如下内容:

  • 补充一些网络基础知识;
  • OkHttp3 的多路复用及缓存实现原理;
  • OkHttp3 的核心 API 结构及作用;
  • 发起请求后 OkHttp3 都做了什么?
  • OkHttp3 中可以学习的架构思想;
  • Retrofit 的主要特点及实现原理;
  • 发起请求后 Retrofit 都做了什么?
  • Retrofit 中可以学习的架构思想。

通过这次课程你可以对安卓开发中的网络知识有更深入的掌握和理解,19.9 买两个热门框架的原理,给你简历加两个亮点,可以说是非常值得了!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-04-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 我就是马云飞 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
深入浅出Retrofit2.x(一)
简单说,Retrofit 是一个支持 RESTful api 架构的 http 网络请求框架的封装库,Retrofit 封装了许多自定义的注解,大大方便和简化了使用,另外灵活性也更高,底层采用 okhttp 实现真正的网络请求,他们的关系可以说是分工协作吧,总结一成一句话就是:Retrofit 让 okhttp 网络请求更优雅!
程序员飞飞
2020/02/27
7910
深入浅出 Retrofit,这么牛逼的框架你们还不来看看?
文章来源:腾讯Bugly Android 开发中,从原生的 HttpUrlConnection 到经典的 Apache 的 HttpClient,再到对前面这些网络基础框架的封装,比如 Volley、Async Http Client,Http 相关开源框架的选择还是很多的,其中由著名的 Square 公司开源的 Retrofit 更是以其简易的接口配置、强大的扩展支持、优雅的代码结构受到大家的追捧。也正是由于 Square 家的框架一如既往的简洁优雅,所以我一直在想,Square 公司是不是只招处女座的程
腾讯大讲堂
2018/02/13
1.8K0
深入浅出 Retrofit,这么牛逼的框架你们还不来看看?
【Android】Retrofit2.0源码解析
Retrofit 前言 使用Retrofit已经一段时间了,这货挺好用的,还很特别,特别是使用接口来定义请求方式,这用法让我对它的源码很是好奇。今天就来看看源码吧... 参靠源码retrofit:2.0.2 基本的用法 首先来简单得实现一次GET请求 定义接口 interface Service { @GET("News") Call<ResponseBody> getNews( @Query("limit") String limit); } 完成一次请求
Gavin-ZYX
2018/05/18
1.1K0
高级工程师的不二之选,Github常年霸榜的超强框架-Retrofit
每个Android开发者在产品开发的过程中,都需要用到网络和服务器进行交互。而对于网络框架的使用和理解,往往可以看出一个开发者到底处于什么段位:
分你一些日落
2021/12/14
5450
Retrofit分析- 架构师是怎么炼成的
万没想到Retrofit会这么火,在没看源码之前,我简单的认为是因为它跟OkHttp同出一源(Square),所以才会炒的那么热。又或者是因为它能支持RxJava,所以火上浇油,一发不可收拾。
java爱好者
2019/07/01
7480
不懂网络组件?这一次爱奇艺大佬带你深度分析OkHttp源码与Retrofit封装,彻底了解!
我们项目当中的每个app都需要用到网络和服务器进行交互,在Android项目开发中使用HTTP协议完成通信的话,基本上都要用到OkHttp或者Retrofit。
Android技术干货分享
2021/01/11
8090
不懂网络组件?这一次爱奇艺大佬带你深度分析OkHttp源码与Retrofit封装,彻底了解!
Android开发笔记:Retrofit + OkHttp3 + coroutines + LiveData打造一款网络请求框架
使用懒加载,将需要的配置在此处配置好,inline 对函数再次调用,可以查一下这样用的优点。
Android技术干货分享
2020/09/03
2.4K0
Android开发笔记:Retrofit + OkHttp3 + coroutines + LiveData打造一款网络请求框架
从架构角度看Retrofit的作用、原理和启示
前言 Retrofit是squareup公司的开源力作,和同属squareup公司开源的OkHttp,一个负责网络调度,一个负责网络执行,为Android开发者提供了即方便又高效的网络访问框架。 不过,对于Retrofit这样设计精妙、代码简洁、使用方便的优秀开源项目,不能仅知道如何扩展和使用,或者仅研究它采用的技术或模式,“技”当然重要,但不能忽视了背后的“道”。 对于Retrofit,我们还应该看到的,是她在优化App架构方面的努力,以及她在提升开发效率方面的借鉴和启示。 本文试图通过一个具体场景,先
我就是马云飞
2018/02/05
2.4K0
从架构角度看Retrofit的作用、原理和启示
Retrofit原理_Retrofit
一:Retrofit是什么? 准确来说,Retrofit 是一个 RESTful 的 HTTP 网络请求框架的封装。 原因:网络请求的工作本质上是 OkHttp 完成,而 Retrofit 仅负责 网络请求接口的封装 我们先来看看下面这个图:
全栈程序员站长
2022/11/17
8170
Retrofit原理_Retrofit
Android面试刨根问底之常用源码篇(二):OkHttp, Retrofit,自定义View源码分析总结
由于篇幅原因拆分成两个部分分享,上一篇讲解了前面三个方面,今天讲剩下的三个部分,之后的还会持续更新。
Android技术干货分享
2021/01/14
1.3K0
Android面试刨根问底之常用源码篇(二):OkHttp, Retrofit,自定义View源码分析总结
Spring Cloud OkHttp设计原理
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://louluan.blog.csdn.net/article/details/90419804
亦山
2019/05/25
1.5K0
高级工程师的不二之选,Github常年霸榜的超强框架
每个Android开发者在产品开发的过程中,都需要用到网络和服务器进行交互。而对于网络框架的使用和理解,往往可以看出一个开发者到底处于什么段位:
做个快乐的码农
2021/12/27
4990
高级工程师的不二之选,Github常年霸榜的超强框架
「2020 新手必备 」极速入门 Retrofit + OkHttp 网络框架到实战,这一篇就够了!
老生常谈 什么是 Retrofit ? Retrofit 早已不是什么新技术了,想必看到这篇博客的大家都早已熟知,这里就不啰嗦了,简单介绍下: Retrofit 是一个针对 Java 和 Android 的设计的 REST 客户机。它通过基于 REST 的 web 服务检索和上传 JSON (或其他结构化数据)变得相对容易。在使用中,您可以配置用于数据序列化的转换器。对于 JSON ,通常使用Gson ,但是可以添加自定义转换器来处理 XML 或其他协议。Retrofit 对 HTTP 请求使用 O
圆号本昊
2021/09/24
1.3K0
「2020 新手必备 」极速入门 Retrofit + OkHttp 网络框架到实战,这一篇就够了!
Android高级工程师面试实战,您会挂么?
xxx公司面试总结 面试形势 群聊(2个面试官+HR+自己) 面试流程 自我介绍 面试官根据你的介绍开始问 你对我们公司有什么想了解的么(复活卡,要时回到没有了也就没有了,可以让面试官给自己提一下建议) 面试题回忆,没有先后顺序 项目架构,组件化架构(他反而没问插件化) Android 事件分发机制(问到源码调用细节) 反射怎么调用一个类的私有方法(这里也是问细节,2个方法的区别) Method method=clazz.getDeclaredMethod(name);//可以调用本类中的所有方法(不包括
用户1155943
2019/05/25
4110
源码解析: Retrofit2.5
Retrofit是Square公司开发的一款针对Android网络请求的框架,遵循Restful设计风格,我们查看 invoke 可以发现:底层基于OkHttp实现的 ,相比其他网络请求框架,有以下优势:
小木箱
2020/11/24
7950
源码解析: Retrofit2.5
Android |《看完不忘系列》之Retrofit
嗨,我是哈利迪~《看完不忘系列》将以从树干到细枝的思路分析一些技术框架,本文将对开源项目Retrofit进行介绍。
Holiday
2020/08/20
8930
Android |《看完不忘系列》之Retrofit
Android 2 新框架 rxjava ,retrifit
Rxjava主要作用就是用来处理异步,当你的业务需要访问数据库,访问网络,或者任何耗时的操作,都可以借助Rxjava来实现。  但是有人说在Android中已经有很多异步操作的API,比如Handler,AsyncTask等,这些都能满足基本的异步操作,为什么还要使用Rxjava呢?  首先我们开看一个例子做个比较:
zhangjiqun
2024/12/16
1240
从零开始仿写一个抖音App——app架构更新与网络层定制
讨论1:zsh 对 bash 的支持并不是完全的,如果运行纯 bash 有时候会出问题建议不要在服务器上用。
何时夕
2018/10/11
1.5K0
从零开始仿写一个抖音App——app架构更新与网络层定制
985毕业的“打工人”,Android开发2年被裁,重新出发终于拿下字节offer
鄙人出生于南方小乡镇,为了走出小镇,在当地够拼够努力,不是自夸,确确实实也算得上“别人家的小孩”,至少在学习这件事情少,没有要家里人操过心。
做个快乐的码农
2021/11/22
1.2K0
985毕业的“打工人”,Android开发2年被裁,重新出发终于拿下字节offer
Android MVVM框架搭建(二)OKHttp + Retrofit + RxJava
  在上一篇文章中,简单的介绍了MVVM框架的成员和简单使用,一个成熟的框架自然是离不开网络访问的,因此文本将通过Retrofit + RxJava去为MVVM框架增加一个网络请求模块。
晨曦_LLW
2021/12/30
2.7K0
Android MVVM框架搭建(二)OKHttp + Retrofit + RxJava
推荐阅读
相关推荐
深入浅出Retrofit2.x(一)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档