首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
Android
订阅
N0tExpectErr0r
更多收藏集
微信扫码分享
微信
新浪微博
QQ
19篇文章 · 0订阅
同步屏障?阻塞唤醒?和我一起重读 Handler 源码
大家应该都知道,Android 的消息机制是基于 Handler 实现的。还记得一年前的自己就看了几篇博客,知道了 Handler、Looper、MessageQueue 就自以为自己知道了 Handler 的原理。但其实看源码的过程中慢慢就会发现,Handler 的内容可不止…
和我一起用 ASM 实现编译期字节码织入
这两天摸鱼的时候,突然发现 Jake Wharton 大神写的 Hugo 非常有意思,通过这个库可以实现对方法调用的一些相关数据进行记录。比如它可以通过在方法前加上 DebugLog 注解使得该方法执行时在 Logcat 中打印这个方法的入参、耗时时间、返回值等等。 这个库的设…
MMKV 源码浅析:腾讯出品的一款 K-V 存储库
从上面的介绍,可以发现它与 Android 中的 SharedPreferences 是极其相似的,但是它的性能却远超于 SharedPreferences。根据官方的宣传,写入随机 int 1000次,下面是它们两者的性能对比: 可以发现,它相比 SP 的性能提升不是一点半点…
Okio 源码解析:轻量而高效的 I/O 库
从前面的 OkHttp 源码解析中我们可以知道,OkHttp 中的 I/O 都不是通过我们平时所使用的 Input/Output Stream 来实现,而是使用了 Okio 这个第三方库,那它与寻常的 IOStream 有什么区别呢?让我们来分析一下它的源码。 Okio 中有两…
Retrofit 源码解析:基于 OkHttp 的网络请求框架
Retrofit 可以说和 OkHttp 是亲兄弟了,它们都是由 Square 公司推出的网络请求库,并且 Retrofit 实际上是基于 OkHttp 实现的,它在 OkHttp 现有功能的基础上进行了封装,支持通过注解进行网络请求参数的配置,同时对数据返回后的解析、序列化进…
SharedPreferences 源码解析:自带的轻量级 K-V 存储库
本文是独立解析源码的第二篇,SharedPreference 是一个 Android 开发自带的适合保存轻量级数据的 K-V 存储库,它使用了 XML 的方式来存储数据,比如我就经常用它保存一些如用户登录信息等轻量级数据。那么今天就让我们来分析一下它的源码,研究一下其内部实现。…
EventBus 源码解析:家喻户晓的事件总线
之前写过了很多常用的库的源码解析,但都需要大量参考其他大牛的博客才能彻底理解一个库的原理。现在想检验一下自己的代码阅读能力,因此尝试靠自己去独立地完成一篇源码解析,看看效果如何。我们先从 EventBus 入手,这篇文章分析的 EventBus 版本为 3.1.1。 从 get…
AsyncTask 源码解析:Android 自带的异步任务工具
AsyncTask 是 Android SDK 中提供的一个用于线程调度的框架,在 Android 兴起的早期被广泛使用,但如今已经被 RxJava、协程等新兴框架所取代。虽然它存在着一些不足,但它的设计思想还是非常有趣的,让我们今天来研究一下。 首先看到它的三个范型参数:Pa…
OkHttp 源码剖析系列(五)——代理路由选择
当我们第一次尝试从连接池获取连接获取不到时,若检查发现代理路由选择器中没有可供选择的路径,首先会进行一次路由选择的过程,因为 HTTP 请求的过程中,需要先找到一个可用的代理路由,再根据代理协议规则与目标建立 TCP 连接。 它是一个用于描述一条路由的类,主要通过了代理服务器信…
OkHttp 源码剖析系列(七)——请求的发起及响应的读取
终于来到了我们 OkHttp 的最后一个部分——请求的发起。让我们回顾一下 CallServerInterceptor 的大体流程: 而我们知道,Exchange 最后实际上转调到了 ExchangeCodec 中的对应方法,而 ExchangeCodec 有两个实现——Htt…