Android 开源项目中每个项目的描述

Description about each project in Android Open Source Project

在 Android 开源项目 (AOSP) 中存在近 500 个项目。 我想要每个项目的描述以及他们的作用。

这是您下载 Android 源代码后会发现的简短版本。

  • Bionic - Android 的 C-运行时间。请注意 Android 没有使用 glibc 与大多数 Linux 发行版一样。相反,c 库被称为 仿生,主要基于 BSD 派生源。在这个文件夹中你 将找到 c 库、数学和其他核心 运行time 的源代码 图书馆。
  • Bootable - 引导和启动相关代码。其中一些是遗产, fastboot 协议信息可能很有趣,因为它是 由许多设备中的引导加载程序实现,例如 Nexus 一个。
  • Build - 包含所有核心 make 的构建系统实现 文件模板。这里的一个重要文件是 envsetup.sh 脚本 在使用平台源代码时,这将对您有很大帮助。
    运行 shell 中的此脚本将启用命令以进行设置 环境变量,构建特定模块和源代码中的 grep 文件。
  • Cts - 兼容性测试。确保构建的测试套件 符合 Android 规范。
  • Dalvik - Dalvik Virtual 实现的源代码 机器
  • 开发 - 与开发相关的项目,例如源代码 对于 sdk 和 ndk 工具。通常不是您触摸的文件夹 与目标平台合作。
  • 设备 - 不同设备的产品特定代码。这是 找到不同 Nexus 设备的硬件模块的地方,构建 配置等。
  • 外部 - 包含所有外部开源项目的源代码 例如 SQLite、Freetype 和 webkit。
  • Frameworks - 此文件夹对 Android 至关重要,因为它包含 框架的来源。在这里您将找到关键服务的实现,例如带包的系统服务器和 Activity 管理器。 java 应用程序 API 和本机库之间的许多映射也在这里完成。

  • Hardware - 硬件相关的源代码如Android硬件 抽象层规范和实现。这个文件夹 还包含参考无线接口层(通信 与调制解调器端)实施。 libcore -Apache Harmony。 libnativehelper - 用于 JNI 的辅助函数。 (内核)- 不是默认源代码下载的一部分,但您可以通过手动下载或将存储库添加到回购工具来访问此代码。包含的来源 Android 版本的 Linux 内核。

  • Out - 构建输出将在您 运行 make 之后放置在这里。这 文件夹结构为 out/target/product/。在模拟器的默认构建中,输出将放置在 out/target/product/generic 中。 在这里您可以找到模拟器用于启动的图像 (或者如果您正在为 一个硬件目标)。

  • Packages - 包含默认应用程序的源代码,例如 作为通讯录、日历、浏览器。

  • 预构建 - 包含以二进制形式分发的文件 方便。示例包括针对不同开发机器的交叉编译工具链。

  • 系统 - 核心 Android 系统的源代码文件。那就是 在启用 Dalvik VM 和任何基于 java 的服务之前启动的最小 Linux 系统。这包括 init 进程的源代码和提供平台动态配置的默认 init.rc 脚本

  • 工具 - 各种 IDE 工具。

除上述之外,您还有隐藏的 .repo 目录,其中包含 repo 实用程序的源代码。它还包含清单,指定要为此 Android 源项目跟踪哪些 git 存储库。如果您有自己的添加项,您可以通过在此处添加本地清单来自动跟踪它们。

对于平台框架的修改,源代码树的 device/sample 文件夹中提供了一些说明。这将向您展示如何将 API 添加到 Android 而无需修改核心框架。

参考文献:

How to understand the directory structure of android root tree?

Master-android