架构概览

Android 开源项目 (AOSP) 是公开发布且可修改的 Android 源代码。任何人都可以下载并修改 AOSP 以适配其设备。AOSP 提供 Android 移动平台的完整且功能完备的实现。

实现 AOSP 的设备有两种兼容性级别:AOSP 兼容性和 Android 兼容性。AOSP 兼容的设备必须符合兼容性定义文档 (CDD) 中的要求列表。Android 兼容的设备必须符合 CDD 和供应商软件要求 (VSR) 及测试(例如供应商测试套件 [VTS]兼容性测试套件 [CTS] 中的测试)中的要求列表。如需详细了解 Android 兼容性,请参阅 Android 兼容性计划

AOSP 架构

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 概览
原生守护程序和库

该层中的原生守护程序包括 inithealthdlogdstoraged。这些守护程序直接与内核或其他接口进行交互,并且不依赖于基于用户空间的 HAL 实现。

该层中的原生库包括 libclibloglibutilslibbinderlibselinux。这些原生库直接与内核或其他接口进行交互,并且不依赖于基于用户空间的 HAL 实现。

Kernel

内核是任何操作系统的中心部分,并与设备上的底层硬件进行通信。尽可能将 AOSP 内核拆分为与硬件无关的模块和特定于供应商的模块。如需了解 AOSP 内核组件的说明(包括其定义),请参阅内核概览

后续操作

  • 如果您刚开始接触 AOSP,并且希望开始开发应用,请参阅“使用入门”部分
  • 如果您想详细了解 AOSP 的特定层,请从左侧导航栏中点击相应部分的名称,然后从该部分的概览开始。