Android 开放源代码项目 (AOSP) 是公开提供且可修改的 Android 源代码。任何人都可以下载和修改 AOSP 以用于自己的设备。AOSP 提供了 Android 移动平台的完整且功能齐全的实现。
对于实现 AOSP 的设备,兼容性分为两个级别:AOSP 兼容性和 Android 兼容性。AOSP 兼容设备必须符合兼容性定义文档 (CDD)中的要求列表。Android 兼容设备必须符合 CDD 和供应商软件要求 (VSR) 中的要求列表,以及供应商测试套件 (VTS)和兼容性测试套件 (CTS)等测试。有关 Android 兼容性的更多信息,请参阅 Android 兼容性计划。
AOSP 架构
AOSP 的软件堆栈包含以下层
图 1. AOSP 软件堆栈架构。
以下是图 1 中使用的术语的定义列表
- Android 应用
- 仅使用 Android API 创建的应用。Google Play 商店广泛用于查找和下载 Android 应用,但也有许多其他替代方案。在某些情况下,设备制造商可能希望预安装 Android 应用以支持设备的核心功能。如果您有兴趣开发 Android 应用,请参阅 developers.android.com。
- 特权应用
- 使用 Android 和系统 API 的组合创建的应用。这些应用必须作为特权应用预安装在设备上。
- 设备制造商应用
- 使用 Android API、系统 API 以及对 Android 框架实现的直接访问创建的应用。由于设备制造商可能会直接访问 Android 框架内不稳定的 API,因此这些应用必须预安装在设备上,并且只能在设备系统软件更新时才能更新。
- 系统 API
- 系统 API 表示仅供合作伙伴和 OEM 用于捆绑应用中的 Android API。这些 API 在源代码中标记为 @SystemApi。
- Android API
- Android API 是面向第三方 Android 应用开发者公开提供的 API。有关 Android API 的信息,请参阅 Android API 参考文档。
- Android 框架
- 一组 Java 类、接口和其他预编译代码,应用基于这些代码构建。部分框架通过使用 Android API 公开访问。其他部分框架仅供 OEM 通过使用系统 API 访问。Android 框架代码在应用的进程内运行。
- 系统服务
- 系统服务是模块化、专注的组件,例如
system_server
、SurfaceFlinger 和 MediaService。Android 框架 API 公开的功能与系统服务通信,以访问底层硬件。 - Android 运行时 (ART)
- AOSP 提供的 Java 运行时环境。ART 执行将应用的字节码转换为处理器特定的指令,这些指令由设备的运行时环境执行。
- 硬件抽象层 (HAL)
- HAL 是一个抽象层,具有供硬件供应商实现的标准接口。HAL 使 Android 能够忽略较低级别的驱动程序实现。使用 HAL 可以让您实现功能,而不会影响或修改更高级别的系统。有关更多信息,请参阅 HAL 概述。
- 原生守护进程和库
此层中的原生守护进程包括
init
、healthd
、logd
和storaged
。这些守护进程直接与内核或其他接口交互,并且不依赖于基于用户空间的 HAL 实现。此层中的原生库包括
libc
、liblog
、libutils
、libbinder
和libselinux
。这些原生库直接与内核或其他接口交互,并且不依赖于基于用户空间的 HAL 实现。- 内核
内核是任何操作系统的核心部分,并与设备上的底层硬件通信。在可能的情况下,AOSP 内核分为硬件无关的模块和供应商特定的模块。有关 AOSP 内核组件的描述(包括定义),请参阅内核概述。
下一步是什么?
- 如果您是 AOSP 新手,并且想开始进行开发,请参阅入门部分。
- 如果您想了解有关 AOSP 特定层的更多信息,请在左侧导航栏中点击该部分的名称,然后从该部分的概述开始阅读。