深入浅出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 条评论
登录 后参与评论

相关文章

来自专栏云计算

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

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

68136
来自专栏web前端教室

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

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

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

iOS开发学习路线

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

3416
来自专栏爱原型爱设计

10个最新交互式Web设计实例欣赏

如今,越来越多的UX/UI设计师将交互/动画元素(例如鼠标悬停状态,音频或视频媒体,滚动交互等等)添加到其网站设计之中。这样一方面可以使网站本身更加绚丽有趣,吸...

55116
来自专栏Flutter入门到实战

老程序员的10条中肯建议

以下十条建议是一个老程序员给出的建议,句句中肯,希望能引起你的思考,而不是笑笑就过去了。觉得在理,不妨随手点赞收藏转发分享,谢谢~

851
来自专栏phodal

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

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

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

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

36710
来自专栏我和未来有约会

flash游戏引擎整理

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

1995
来自专栏效率达人

推荐6款好用却不为人知的效率软件!

如今科技越来越发达,越来越多的日常辅助软件工具被人们用于办公。软件工具只是为了表达我们诉求的一种方式,所以在不同的工作环境或个人习惯的情况下,每个人使用的方式也...

932
来自专栏大前端开发

从编程小白到全栈开发:先定一个小目标

经过我上一篇文章的介绍,你是不是感觉自己开始对程序猿这个群体感兴趣了,或已立志成为他们中的一员?

984

扫码关注云+社区