Android 源代码

鸟人的Android揭秘(2)——通过启动过程分析 Android Framework

可紊 提交于 2020-03-02 07:24:53
Android源代码数量极其庞大,以最新的 Android 7.1 为例,代码数量超过 50G。若想理解和掌握如此庞大的 Android 系统,将需要耗费大量的时间和精力,付出极大的努力。关键是到目前为止也没有相对完整的资料对 Android Framework 作系统性讲解说明。 那么,我们应该如何去分析 Android Framework 的代码呢?回答这个问题之前,先回想一下通常我们是如何分析他人编写的代码。在分析代码时,一般来说我们都会从程序的入口 main 函数开始,一点一点地理清程序的流程,掌握程序运行的过程。同样的,在分析结构庞大的 Android Framework 代码时,我们也要从 Android 平台的启动过程入手。 Android 启动过程包含从 Linux 内核加载到 Android Runtime 启动再到 Launcher 应用启动的整个过程,依次分析这一过程,有利于我们系统地理解 Android Framework 运行的原理。 如下图所示简单描述了 Android 的启动过程,后续章节所讲解 Android Framework 的初始化过程和各模块之间如何相互作用乖内容时,均以此图所描述的启动过程为基础。 以下对照图简单地讲解一下。 1. Linux 内核 Android 是基于 Linux 内核的系统平台。启动时,首先通过 bootloader