下面是下载Android源代码时你会发现的简短版本。
- 仿生-- Android的C运行时。请注意,Android并不像大多数Linux发行版那样使用glibc。相反,c库被称为仿生库,并且主要基于BSD派生的源。在此文件夹中,您将找到c库、数学库和其他核心运行时库的源代码。
- 可引导-启动和启动相关的代码。其中一些是遗留的,快速引导协议信息可能很有趣,因为它是由引导加载器在许多设备中实现的,比如Nexus。
- Build -构建系统的实现,包括所有核心的生成文件模板。这里的一个重要文件是envsetup.sh脚本,它在使用平台源代码时将对您有很大帮助。
在shell中运行此脚本将使命令能够在源代码文件中设置环境变量、构建特定模块和grep。
- Cts -可比较性测试。确保构建符合Android规范的测试套件。
- Dalvik -实现Dalvik虚拟机的源代码
- 开发-与开发相关的项目,如sdk和ndk工具的源代码。通常情况下,当您使用针对目标的平台时,并不是您所接触的文件夹。
- 设备-不同设备的产品专用代码。这里是为不同的Nexus设备、构建配置等找到硬件模块的地方。
- 外部-包含所有外部开源项目的源代码,如SQLite、Freetype和webkit。
- 框架--这个文件夹对于Android非常重要,因为它包含框架的源代码。在这里,您将发现关键服务的实现,如带有包和活动管理器的System。这里还完成了java应用程序API和本机库之间的许多映射。
- 硬件-硬件相关的源代码,如Android硬件抽象层规范和实现。此文件夹还包含引用无线电接口层(用于与调制解调器端通信)实现。阿帕奇和谐。libnativehelper -用于JNI的帮助函数。(内核)--不是默认源代码下载的一部分,但您可以通过手动下载或将存储库添加到回购工具来访问该代码。包含Linux内核的Android版本的源代码。
- Out -在运行make之后,构建输出将放在这里。文件夹结构退出/目标/产品/。在仿真器的默认构建中,输出将放置在out/target/product/generic中。在这里,您将发现模拟器用于启动的映像(如果您正在为硬件目标构建,则下载并闪烁到设备上)。
- 包-包含默认应用程序的源代码,如联系人、日历、浏览器。
- 预构建-包含以二进制形式分发的文件,以方便使用。示例包括用于不同开发机器的交叉编译工具链。
- 系统-源代码文件的核心Android系统。这是在启用Dalvik和任何基于java的服务之前启动的最小Linux系统。这包括init进程的源代码和提供平台动态配置的默认init.rc脚本。
- 工具-各种IDE工具。
除此之外,您还有隐藏的.repo目录,其中包含回购实用程序的源代码。它还保存清单,指定要为这个Android源项目跟踪哪些git存储库。如果您有自己的添加,您可以通过在这里添加本地清单来自动跟踪它们。
对于平台框架的修改,源代码树的设备/示例文件夹中有一些可用的说明。这将向您展示如何在无需修改核心框架的情况下向Android添加API。
参考资料:
如何理解android根树的目录结构?
主人-android