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

大家好我是张拭心,最近参与公司项目的基础网络模块重构,在对 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 买两个热门框架的原理,给你简历加两个亮点,可以说是非常值得了!

原文发布于微信公众号 - 我就是马云飞(coding_ma)

原文发表时间:2018-04-24

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏我和未来有约会

flash游戏引擎整理

目前已经有很多比较完善的flash游戏引擎,这个我把他们都分类整理出来。希望对大家开发游戏,学习其中的思路有所帮助。不管是flash还是silverlight...

2235
来自专栏Golang语言社区

Android手机与vr交互暴风魔镜3D效果显示原理

首先讲到VR,谈谈个人体会,半年前看到淘宝上的vr眼镜盒为了促销标题图片都是非常性感的,还有海量你懂得资源。到最近在淘宝搜索vr暴风魔镜都正规了,而且销售量庞大...

3804
来自专栏BestSDK

谷歌告诉你,什么样的手机广告最受欢迎

每次打开某些应用都是满屏的广告,会有点不爽?Google也这么觉得。最近,Google列出了一些它们认为会影响用户体验的Android手机广告形式: ·会挡住网...

25010
来自专栏Java Web

大三小白初次接触封闭式开发总结

学院大三的期末似乎总是这样,会在6月初的时候不是自己出去找到实习,不然就会要求你去到学校安排的实习中去(自己选择实习的方向),所以在我选择了Java Web方向...

2647
来自专栏全栈工程师成长之路

全栈开发学习笔记(持续更新)

38010
来自专栏云资讯小编的专栏

微票 Cloud Native 实践之路

微票儿是今年备受关注的互联网购票平台:估值近百亿、年增长率超4000%、覆盖全国500个城市4500多家影院,日出票达100万张,峰值200万张。而在其业务迅猛...

1850
来自专栏全栈工程师成长之路

iOS开发学习路线

这里筑梦师,是一名正在努力学习的iOS开发工程师,目前致力于全栈方向的学习,希望可以和大家一起交流技术,共同进步,用简书记录下自己的学习历程.

4026
来自专栏phodal

2017 年,我挖的那些开源软件坑

造轮子,是一个程序员的基本装逼技能。这些轮子可以的来源可以是: 我们日常工作中遇到的一些问题,提出的解决方案。 使用某个开源软件的过程中,发现它不能满足我们的需...

2347
来自专栏云计算

爬了知乎60W个网页,发现了一些很有趣的东西

我们先讲讲爬虫,这10w个网页我没有写代码去实现抓取,当时在上班,不想花太多时间去抓取这些内容(flag)。所以就采用Chrome浏览器的插件Web Scrap...

83336
来自专栏web前端教室

是什么拉开了前端开发工程师之间的技术差距?

假设所有的前端程序员的技术水平都是0,二三年之后必然会有一些人水平拨尖。那么是什么造成了他们之间的区别呢?就学习态度来讲,好像许多水平平庸的程序员,他们也是经常...

2216

扫码关注云+社区

领取腾讯云代金券