首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
开源库
中玉
创建于2021-09-26
订阅专栏
开源库
等 4 人订阅
共12篇文章
创建于2021-09-26
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
Retrofit的创建
流程图 Retrofit使用 创建 Retrofit 源码解析 首先看下Builder参数。 Platform 很简单,通过反射的方式获取。 converterFactories 看下默认实现 很简单
OkHttpCall创建源码解析
Call 成员变量 构造方法 总结: OkHttpCall相对简单。 OkHttpCall是真实做网络请求的。根据传入的ServiceMethod和请求参数执行网络请求。
Retrofit设计模式
建造者模式 工厂模式 静态工厂 根据Class.forName返回不同的平台。 外观模式 我们交互只需要和Retrofit打交道,不需要了解它里面封装的子系统。 策略模式 适配器模式 动态代理模式
Retrofit动态代理
源码解析 这篇重点关注ServiceMethod的创建。 构建 ServiceMethod 成员变量 包含了网络请求的所有基本信息 构造方法 build方法 遍历解析注解 总结 根据方法返回类型和方法
Gson源码解析
简介 java对象和JSON之间相互转换的库。 虽然现在PB协议已经成为主流,还是来看下Gson库实现的思路。 使用 引入 转换 源码分析 构造方法 factories里面添加了大量的基本数据类型的T
Rxjava
四要素 被观察者 观察者 订阅 事件 使用 优点: 代码简洁。 链式调用。 缺点: 使用起来有学习成本。 代码库过于复杂,出问题不容易定位。 参考: 慕课网
Eventbus最强解析
使用 导入EventBus 定义事件 注册和解注册 监听事件 发送事件 源码解析 初始化 看下getDefault方法 很简单,返回一个单例。 看下构造方法。 为什么构造方法是public的? 在我们
BlockCanary
原理 即整个应用的主线程,只有这一个looper,不管有多少handler,最后都会回到这里。 看下Looper的loop方法。 在消息执行前后打印时间。根据时间判断是否卡顿。 核心流程图 源码分析
LeakCanary原理解析
内存泄漏 单例造成的内存泄漏 问题: 如果传入的是Activity的context,当Activity退出时内存并不会被回收,因为该单例对象持有了Activity的引用。 解决:传入Applicati
Butterknife
工作原理 运用APT技术,自定义注解,编译是扫描注解,解析注解生成对应java代码。 调用ButterKnife.bind(this)方法的时候,将ID与对应的上下文绑定在一起。 源码解析 总结: 通
Volley
源码解析 RequestQueue的add()方法来添加一条网络请求。 先放到缓存队列。如果缓存队列找到结果就回调主线程。 缓存队列没找到放到网络队列,发送请求解析请求缓存结果回调主线程。 参考: A
LiveData
LiveData是什么 基于观察者模式 LiveData是一种持有可被观察数据的类。LiveData需要一个观察者对象,一般是Observer类的具体实现。当观察者的生命周期处于STARTED或RES