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

相关文章

来自专栏Crossin的编程教室

写给新手程序员的一封信

  首先,欢迎来到程序员的世界。在这个世界上,不是有很多人想创造软件并解决问题。你是一名hacker,属于那些愿意做一些有挑战性的事情的人。   “当你不创造东...

3388
来自专栏斑斓

设计匠艺 | 清晰的设计意图

如果你不能清晰地表达设计意图,追求简单无疑就是一个笑话。语言的纠缠不清,实则暴露了你思想的混乱,就像行走在陌生城市的异乡人,城市地图成了他唯一的指路明灯。糟糕的...

3125
来自专栏乐享123

Pycon2014 in Shanghai

1496
来自专栏Java帮帮-微信公众号-技术文章全总结

程序员如何快速适应新工作

一、要谦虚爱学习 对自己不熟悉的工具和方法要抱有谦虚的态度。新的工作就意味着学习新的东西。“知之为知之,不知为不知”,对自己不知道的东西要谦虚和诚实。并且要记住...

3397
来自专栏企鹅号快讯

一路走到java工程师,java都快出java9了,到底该如何学java?

期望本文能给一些在职想转行或许在校想学习Java的同学们一些小的启示。 如果我的文章能有幸被你看到,那么很大可能你和我一样,是半路出家的转行人员,不论有没有根底...

1807
来自专栏阿杜的世界

持续学习杂谈:总结与反思一、总结与反思二、微服务技术栈

去年在一篇文章中看到:工作后的学习,可以从两个方面着力——大的理论和底层的基础,对于中间的知识点可以放宽一点。可能是我对此理解得不对,按照这个思路,我调整了自己...

692
来自专栏web前端教室

学习前端开发,不知道怎么做,不知道问什么了,怎么办

我刚开始搞培训的时候,不是很懂学生的心理。我想法很简单,你不会,我教你,你努力学,学会就挣钱,很清晰。但人本身是复杂的,他会受很多外在因素的影响。 他会想,我学...

1818
来自专栏新智元

Facebook 20 亿用户数据均可能泄露,扎克伯格仍不打算辞职

1094
来自专栏IT大咖说

创业公司中的Java高效应用

摘要 Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特...

3516
来自专栏姬小光

用完我即走,何日君再来?

而作为开发者,最令人兴奋的莫过于可以以最小的成本,最快的速度上线一个自己想要的产品了。不过,作为个人开发者,如果没有公司资质的话,限制还是很多的。比如许多类目的...

513

扫码关注云+社区