AOSP架构

Android 开放系统平台 (AOSP)是公开可用且可修改的 Android 源代码。任何人都可以为他们的设备下载和修改 AOSP。 AOSP 提供完整且功能齐全的 Android 移动平台实现。

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

AOSP架构

AOSP 的软件堆栈包含以下层:

AOSP软件栈架构
1.AOSP 软件堆栈架构。
  • 安卓应用。仅使用 Android SDK 中的 Android API 创建的应用程序。 Google Play 商店广泛用于查找和下载 Android 应用程序,但还有许多其他选择。在某些情况下,设备制造商可能希望预装 Android 应用程序以支持设备的核心功能。如果您对开发 Android 应用程序感兴趣,请访问developers.android.com
  • 特权应用程序。结合使用 Android 和系统 API 创建的应用程序。这些应用程序必须作为特权应用程序预安装在设备上。
  • 设备制造应用程序。使用 Android API、系统 API 和直接访问 Android 框架实现的组合创建的应用程序。由于设备厂商可能会直接访问Android框架内不稳定的API,这些应用必须预装在设备上,并且只有在设备的系统软件更新时才能更新。
  • 安卓框架。一组 Java 类、接口和其他构建应用程序的预编译代码。该框架的某些部分可通过使用 Android SDK 的 Android API 公开访问。该框架的其他部分只能通过使用 Android SDK 的系统 API 提供给 OEM。 Android 框架代码在应用进程中运行。
  • 安卓开发工具包。一个软件开发工具包,用于创建与 Android 框架交互的应用程序。 Android SDK 由适用于所有应用程序的 Android API 和仅适用于特权应用程序的系统 API 组成。有关 Android SDK 的 Android API 的更多信息,请访问developers.android.com 。请注意,还有一个Android 原生开发工具包 (NDK) ,允许您使用原生代码编写部分 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 特定层的更多信息,请单击左侧导航中的层名称,然后从该层的概述开始。