android retrofit注解(网络请求框架Retrofit详解)
在Android开发过程中,有很多的网络请求框架,比如Volley、Async Http Client,但是我们为什么要用Retrofit呢 ?
一个词:方便。使用方便,修改也方便。
Retrofit的优点
- 可以配置不同HTTP client来实现网络请求;
- 请求的方法参数注解都可以定制;
- 支持同步、异步和RxJava;
- 超级解耦;
- 可以配置不同的反序列化工具来解析数据,如json、xml等;
- 使用非常方便灵活;
- 支持GET/POST/PUT/DELETE/HEAD/PATCH协议。
总的来说,Retrofit是一个基于OkHttp的高解耦的网络框架。功能强大、简洁易用,基本上也是我们现在天天在用的一个框架。
Retrofit说起来相当简单,简单到源码只有37个文件,其中22个文件是注解,还都和HTTP有关,真正暴露给用户的类并不多。Retrofit其实就是一个网络请求框架的封装,一般常用的框架组合是:RxJava Retrofit OkHttp。
但是只有会用是远远不够的,我们还要深入底层,学习原理。每年BAT这些大厂关于Okhttp和Retrofit的题目都能难倒一大批应聘者,这些题目要么开放性很强、要么需要对源码有很深的理解。
比如下面我从牛客网的面经整理出来的题目:- 什么是动态代理?和静态代理的区别是什么?JDK中动态代理是怎么实现的?
- 在项目中你有用到哪些设计模式?解决了什么问题?
- 怎么使用OkHttp或者Retrofit完成文件下载上传?
- 如果网络比较差,2G/3G,怎么进行弱网优化?
- Http1和Http2的区别是什么?
- 谈谈tcp与UDP的理解
- okhttp为什么会使用okio而不是用普通io
- socket连接池怎么复用的
- tcp怎么拥塞控制?SSL的握手和采用的加密算法
- okHttp进行网络请求优化的原理?
这些问题都需要我们对okhttp和Retrofit的原理非常熟悉,并且还要能结合自己的思想,说出自己的理解。
网络是项目开发中不可或缺的部分,但是很多程序员平时都是CV编程,以至于面试被问到为什么要使用Retrofit、OkHttp都答不出个所以然来!
今天想和大家分享的是一份由阿里大佬整理出来的 Android 开发相关源码精编解析,这份资料对Retrofit、OkHttp都有完整的解析。
此外,这份资料一共有508页,18大版块,全是Android开发相关源码的精编解析。相信大家在看完这份资料后会对Android源码有更深的理解!
资料完整目录资料整理详情
1.深入解析微信 MMKV 源码
- 获取 MMKV 对象
- 修改数据写入
- Protobuf 处理
- Protobuf 实现
- 跨进程锁实现
- 文件锁封装
2.深入解析阿里巴巴路由框架 ARouter 源码
- 初始化
- 路由跳转
- 总结
3.深入解析 AsyncTask 源码(一款 Android 内置的异步任务执行库)
- 功能概述
- 创建
- 执行
- 取消
- 线程池
- 不足之处
- 总结
4.深入解析 Volley 源码(一款 Google 推出的网络请求框架)
- Volley
- RequestQueue
- ExecutorDelivery
- Request
5.深入解析 Retrofit 源码
- 目录
- 源码分析
6.深入解析 OkHttp 源码
- OkHttp 3.7 源码分析(一)——整体架构
- 总体架构
- kHttp 3.7 源码分析(二)——拦截器 &一个实际网络请求的实现
- OkHttp 3.7 源码分析(三)——任务队
- OkHttp 3.7 源码分析(四)——缓存策
- OkHttp 3.7 源码分析(五)——连接池
7.深入解析 ButterKnife 源码
8.深入解析 Okio 源码(一套简洁高效的 I/O 库)
9.深入解析 SharedPreferences 源码
10.深入解析 EventBus 源码
11.Android 自定义注解初探
12.View 的工作机制源码分析
13.Android 触摸事件分发机制源码分析
14.Android 按键事件分发机制源码分析
15.深入解析 Handler 源码
16.深入解析 Binder 源码
17.深入解析 JNI 源码
18.深入解析 Glide 源码
全文508页,共计十八项项目源码的解析精编,碍于篇幅原因,本文就不全部展示了。
想要的直接私信我关键字【源码】即可。
立即获取Android开发之路并不简单,我们要学的东西不仅仅只有表面的技术,还要深入底层,弄明白下面的原理,只有这样,我们才能够提高自己的竞争力,在当今这个竞争激烈的世界里立足,才能突破瓶颈走的更长更远!
千里之行始于足下,愿你我共勉。
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com