每个Android开发者在产品开发的过程中,都需要用到网络和服务器进行交互。而对于网络框架的使用和理解,往往可以看出一个开发者到底处于什么段位:
-
初级工程师:虽然也会使用OkHttp、Retrofit等框架,但基本都是机械的套用,对其源码、核心原理所知甚少,需要付出大量的时间研究源码。
-
中级工程师:对于常见网络框架的内部原理有些了解,在项目开发过程中往往都能根据业务需求选用合适的框架。但遇到问题的时候还是经常需要寻求开源方案支持,通常这个时候他们会自行设计一个尽可能小的封装。
-
高级工程师:一般会在项目中担任其架构选取的任务。他们对对http请求、线程池、缓存的知识了然于心,对网络框架的选择标准,一定是高性能,且简洁易用。所以基于OkHttp进行封装的Retrofit基本是他们的不二之选,且在支持converter扩展和rxjava,扩展性不好对他们高超的重构和封装技巧根本不是问题。而且对于Retrofit的核心思想熟络于心,可以很好地迁移到其他的开发工作中。
Retrofit为何成为高工最爱作为最为广泛使用的网络请求框架,OkHttp其实已经非常强大。但是在实际开发过程中,大家还是会遇到不少问题:无法适配自动线程的切换、调用复杂、网络请求接口配置繁琐、缓存失效……。而Retrofit的二次封装,可以很好地解决这些问题,为OkHttp如虎添翼。 Retrofit是一个非常强大的封装框架,可以配置不同HTTP client来实现网络请求,如OkHttp、httpclient等;可以定制请求方法的参数注解;可以同步或异步RxJava;轻松实现超级解耦;配置不同的反序列工具来解析数据,而且设计模式颇多,使用非常方便灵活:
Retrofit没有改变网络请求的本质,这部分仍旧由OkHttp完成。它最主要的特点在于设计模式非常丰富,可以通过注解直接配置请求,可以适配不同的http客户端,而且通过不同的Json Converter 来序列化数据,同时对RxJava提供支持。所以Retrofit + OkHttp + RxJava是当前高工最钟意的一套框架。
但这套框架其实是有一定门槛的,想要用好这套框架,对于Retrofit的核心原理一定要十分熟悉。而且目前各大厂在面试中,也会对Retrofit刨根问底:
-
用过哪些网络加载库?Retrofit核心实现原理?
-
如果让你实现Retrofit的某些核心功能,你会考虑怎么去实现?
-
Retrofit的注解是怎么解析的?
-
Retrofit网络请求层用的什么?
-
Retrofit中使用了哪些设计模式?
-
Retrofit在OkHttp上做了哪些封装?动态代理和静态代理的区别,是怎么实现的?
-
Android开发Repository层如何拿到retrofit返回的数据?
为了帮助大家更好地学习掌握Retrofit的核心原理,在这里给大家分享一份 《Android 开发相关源码精编解析》 ,整份资料 共486页,包含了18个大模块。
有需要的小伙伴可以 扫描下方二维码,自行领取。
1.深入解析微信 MMKV 源码
- 初始化
- 获取
- 修改
- 删除
- 读取
- 文件回写
- Protobuf
- 处理
- 跨进程锁实现
- 总结
2.深入解析阿里巴巴路由框架 ARouter源码
- 初始化
- 路由跳转
- Service 的获取
- 拦截器机制
- 注解处理
- 总结
3.深入解析 AsyncTask 源码(一款Android 内置的异步任务执行库)
- 功能概述
- 创建
- 执行
- 取消
- 线程池
- 不足之处
- 总结
4.深入解析 Volley 源码(一款 Google推出的网络请求框架)
Volley
RequestQueue
ExecutorDelivery
NetworkDispatcher
CacheDispatcher
Request
Response
Network
HttpStack
缓存机制
总结
5.深入解析 Retrofit 源码
- 创建网络请求接口的实例
- 使用步骤
- 源码分析
- 外观模式
- 代理模式
6.深入解析 OkHttp 源码
- OkHttp 3.7 源码分析(一)——整体架构
- OkHttp 3.7 源码分析(二)——拦截器&一个实际网络请求的实现
- OkHttp 3.7 源码分析(三)——任务队
- OkHttp 3.7 源码分析(四)——缓存策
- OkHttp 3.7 源码分析(五)——连接池
8.深入解析 Okio 源码(一套简洁高效的I/O 库)
- Sink
- Source
- Buffer
- BufferedSource
- BufferedSink
- Timeout 超时机制
- 总结
9.深入解析 SharedPreferences 源码
- 获取 SharedPreferences
- 编辑 SharedPreferences
- 提交 SharedPreferences
- 总结
10.深入解析 EventBus 源码
- getDefault 方法
- register 方法
- post 方法
- unregister 方法
- Poster
- 总结
11.Android 自定义注解初探
- 什么是注解
- 元注解
- 自定义注解
- 在 Android 中使用自定义注解
- ButterKnife 的流程
这份完整版的《Android 开发相关源码精编解析》PDF版电子书,已经上传至CSDN官方,朋友们如果需要可以微信扫描下方CSDN官方认证二维码【免费获取】。