Android 开放系统平台 (AOSP)是公开可用且可修改的 Android 源代码。任何人都可以为他们的设备下载和修改 AOSP。 AOSP 提供完整且功能齐全的 Android 移动平台实现。
实现 AOSP 的设备有两个级别的兼容性:AOSP 兼容性和 Android 兼容性。 AOSP 兼容设备必须符合兼容性定义文档 (CDD)中的要求列表。 Android 兼容设备必须符合 CDD 和供应商软件要求 (VSR) 中的要求列表以及供应商测试套件 (VTS)和兼容性测试套件 (CTS)中的测试。有关 Android 兼容性的更多信息,请参阅Android 兼容性程序。
AOSP架构
AOSP 的软件堆栈包含以下层:
图1.AOSP 软件堆栈架构。
以下是图 1 中使用的术语的定义列表:
- 安卓应用
- 仅使用 Android API 创建的应用程序。 Google Play 商店广泛用于查找和下载 Android 应用程序,但还有许多其他选择。在某些情况下,设备制造商可能希望预装 Android 应用程序以支持设备的核心功能。如果您有兴趣开发 Android 应用程序,请参阅developers.android.com
- 特权应用
- 结合使用 Android 和系统 API 创建的应用程序。这些应用程序必须作为特权应用程序预安装在设备上。
- 设备制造商应用
- 使用 Android API、系统 API 和直接访问 Android 框架实现的组合创建的应用程序。由于设备厂商可能会直接访问Android框架内不稳定的API,这些应用必须预装在设备上,并且只有在设备的系统软件更新时才能更新。
- 系统接口
- 系统 API 表示仅供合作伙伴和 OEM 用于包含在捆绑应用程序中的 Android API。这些 API 在源代码中被标记为@SystemApi。
- 安卓接口
- Android API 是供第三方 Android 应用程序开发人员公开使用的 API。有关 Android API 的信息,请参阅Android API 参考。
- 安卓框架
- 一组 Java 类、接口和其他构建应用程序的预编译代码。框架的某些部分可通过使用 Android API 公开访问。框架的其他部分只能通过使用系统 API 提供给 OEM。 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 特定层的更多信息,请单击左侧导航中的部分名称,然后从该部分的概述开始。