架构概览

Android 开放源代码项目 (AOSP) 是公开提供且可修改的 Android 源代码。任何人都可以下载和修改 AOSP 以用于自己的设备。AOSP 提供了 Android 移动平台的完整且功能齐全的实现。

对于实现 AOSP 的设备,兼容性分为两个级别:AOSP 兼容性和 Android 兼容性。AOSP 兼容设备必须符合兼容性定义文档 (CDD)中的要求列表。Android 兼容设备必须符合 CDD 和供应商软件要求 (VSR) 中的要求列表,以及供应商测试套件 (VTS)兼容性测试套件 (CTS)等测试。有关 Android 兼容性的更多信息,请参阅 Android 兼容性计划

AOSP 架构

AOSP 的软件堆栈包含以下层

AOSP software stack architecture.

图 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 实现。

内核

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

下一步是什么?

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