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?
在 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?