EventBus 源码分析 发表于 2018-12-15 前言EventBus 使用发布/订阅者模式,能够很好的进行模块之间的通信、解耦。以前一直停留在会用的层次,为了探究底层实现阅读了其源码实现,这也是继 Volley 以外我第二个阅读的框架源码。 阅读全文 »
Volley 源码分析 发表于 2018-12-13 前言学习了 Android 这么久,一直没完整看过一个框架的源码,打算先看看以前用过的 Volley 源码,虽然大体上被 OkHttp 替代了,不过它也有优点,比如其非常适合进行数据量不大,但通信频繁的网络操作、占用空间比较小等。 阅读全文 »
Kotlin 泛型 发表于 2018-12-10 前言Kotlin 也拥有泛型的概念,和 Java 的有些相似,但是又不尽相同,本文主要记录 Java 和 kotlin 泛型的相同及差异点。 阅读全文 »
Java 类加载机制 发表于 2018-11-22 前言类加载是 Java 程序运行的第一步,研究类的加载有助于了解 JVM 执行过程,同时对于 Android 热更新、插件化的理解也有很大帮助。 阅读全文 »
Android 应用启动源码分析 9.0 发表于 2018-11-14 前言本文主要分析当用户点击 Launcher 上的应用图标,到启动应用程序首个页面的流程。本文基于 Android 9.0 ,结论由调试编译后模拟器得出,aosp 分支 android-9.0.0_r1。 阅读全文 »
AsyncTask 源码分析 发表于 2018-11-11 前言AsyncTask 能够很容易的实现在子线程执行耗时操作,然后在主线程中更新进度,任务完成后能在主线程中收到结果,其提供了以下几个主要方法,先从一个例子开始。 阅读全文 »
ThreadLocal 源码分析 发表于 2018-09-12 前言ThreadLocal 用于存储线程级的变量,每个线程各自存各自的,也各自取各自的。Looper 类中就使用它存储了每个线程的 Looper 对象,那么它到底是如何做到的呢,来探究下源码。 阅读全文 »
View 动画源码分析 发表于 2018-09-06 前言开发过程中一直很好奇,TranslateAnimation、ScaleAnimation 这些 View 的动画究竟是在哪里执行的?为什么 View 动画不会改变 View 属性,为了了解其实现于是就调试了源码,本文用作记录。 阅读全文 »
View.post 源码分析 发表于 2018-09-02 前言我们知道 Activity 的 onCreate、onStart、onResume 这些回调中通通拿不到 View 的宽高,而通过调用 View.post 在回调中却能拿到宽高这是为什么?来探究下源码看看。 阅读全文 »
Android Handler 源码分析 发表于 2018-09-01 前言Handler 消息处理机制在 Android 开发中起着举足轻重的作用,有必要好好理解下其原理,先前我写了一篇文章,感觉疏漏了好多东西,下面先从一个简单的例子出发。 阅读全文 »