Android网络通信

105 阅读2分钟

网络通信必备基础 1.Restful URL 2.Http协议&TCP/IP协议 3.SSL握手与加密 4.DNS解析 5.Socket通信 socks代理 Http普通代理与隧道代理

Okhttp源码解读 1.Socket连接池的复用机制 2.Http协议重定向与缓存处理 3.高并发请求队列:任务分发 4.责任链模式拦截器设计

Retrofit 设计思想: 迪米特设计原则 最少知道原则 AOP架构设计思想

使用了多少种设计模式? 构建者模式 门面模式 动态代理模式

构建者模式 参数超过5个

门面模式 一个类搞定

create

设计模式 -> 架构设计思想(AOP)

retrofit? 必备的通道 okhttp aop的切面

AOP retrofit切面的目的是什么? 转化okhttp请求的功能 使用动态代理模式:Proxy.newProxyInstance 运行时生成 生成类需要什么? ClassLoader

泛型 1.泛型的作用与定义 2.泛型的协变与逆变 3.PECS法则:泛型上下边界 4.泛型擦除原理, 泛型桥方法 实战: RxJava中泛型的使用分析

注解 1.自定义注解与元注解 2.注解参数与默认值 使用 1.APT,编译时注解处理器 2.插桩,编译后自动埋点 3.反射,运行时动态获取注解信息

注解原理 实战: 基于反射场景的Retrofit注解实战

反射 jvm 对象->反射 所有的函数 拿到注解

ServiceMethod 解析service中的方法 反射方法的解析 method.getAnnotation 拿到所有的注解 callAdapter 请求适配器 反射,注解,泛型, apt, 动态代理 生成代码 运行期间

apt:编译期间 注解生成代码的技术

搞这么复杂干什么?-->为了适应所有的网络请求

retrofit 能用单例模式封装吗? 单例意味着内存一直占用
偶尔的网络调用 就不需要了

功能->转化okhttp请求, 会在什么地方做

完成一类功能->必须某个地方(函数) 函数就是一个切面