架构概述

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 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 概述
本机守护进程和库

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

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

核心

内核是任何操作系统的核心部分,并与设备上的底层硬件进行对话。在可能的情况下,AOSP 内核被拆分为与硬件无关的模块和特定于供应商的模块。有关 AOSP 内核组件的描述(包括定义),请参阅内核概述

下一步是什么?

  • 如果您是 AOSP 的新手,并且想开始开发,请参阅入门部分
  • 如果您想了解有关 AOSP 特定层的更多信息,请单击左侧导航中的部分名称,然后从该部分的概述开始。