AOSP 概述

Android 是一种用于各种不同外形设备的操作系统。任何人都可以通过 Android 开源项目 (AOSP) 获取 Android 的文档和源代码。您可以使用 AOSP 为您自己的设备创建 Android 操作系统的自定义变体。

AOSP 的设计宗旨是避免出现中心故障点,即一家行业参与者限制或控制另一家行业参与者的创新。因此,AOSP 是一款完整的、生产质量的开发者产品,其源代码开放,可供自定义和移植。

文档的这一部分旨在帮助新的 AOSP 开发者开始使用该平台并执行必要的开发任务。

必需术语

以下是在《入门指南》文档中使用的术语和定义的列表。在继续操作之前,您应该学习每个定义。

Android 应用开发者

Android 应用开发者编写在 Android 上运行的 Android 应用 或应用程序。应用开发者分为两类:第一方 (1p) 应用开发者和第三方 (3p) 应用开发者。

Android 第一方应用开发者
能够访问 AOSP 系统 API 并编写特权应用和设备制造商应用的 Android 应用开发者。
Android 第三方应用开发者
仅使用 Android 公共 SDK 创建 Android 应用的 Android 应用开发者。

如果您想为 Android 开发第三方应用,请参阅 developers.android.com。本网站上的信息仅适用于直接使用 AOSP 的人员。

Android 调试桥 (adb)
一种命令行工具 (adb),允许您的工作站与虚拟设备、软件模拟设备或物理设备进行通信。
Android 兼容设备
一种可以使用 Android SDK 和 NDK 运行第三方开发者编写的任何第三方应用的设备。Android 兼容设备必须遵守《兼容性定义文档 (CDD)》的要求并通过《兼容性测试套件 (CTS)》。Android 兼容设备有资格参与 Android 生态系统,其中包括 Android Play 商店的潜在许可、Google 移动服务 (GMS) 应用和 API 套件的潜在许可以及 Android 商标的使用。欢迎任何人使用 Android 源代码,但要被视为 Android 生态系统的一部分,设备必须是 Android 兼容的。有关兼容性和 CTS 的更多信息,请参阅 Android 兼容性计划概述
兼容性定义文档 (CDD)
一份列举 Android 兼容设备的软件和硬件要求的文件。
贡献者

为 AOSP 源代码做出贡献的人。贡献者可以是 Google 员工、其他公司员工以及没有公司隶属关系的个人。每位 AOSP 贡献者都使用相同的工具,遵循相同的代码审核流程,并受相同的编码风格约束。您不必成为贡献者即可使用 AOSP;您可以下载 AOSP,根据自己的需要对其进行修改,并将其部署在设备上,而无需贡献代码供他人使用。

Google 接受的代码贡献类型是有限制的。例如,您可能想贡献一个替代应用程序 API,例如完整的基于 C++ 的环境。Google 会拒绝该贡献,因为 Android 鼓励应用程序在 ART 运行时中运行。同样,Google 不接受与许可目标不兼容的 GPL 或 LGPL 库等贡献。

如果您有兴趣贡献源代码,请在开始工作之前联系 Google

兼容性测试套件 (CTS)

一套免费的、商业级的测试套件,可以二进制文件形式下载,也可以 AOSP 源代码形式下载。CTS 是一组单元测试,旨在集成到您的日常工作流程中。CTS 的目的是揭示不兼容性,并确保软件在整个开发过程中保持兼容。

Cuttlefish

一种可配置的虚拟 Android 设备,可以使用第三方云服务(例如 Google Cloud Engine)远程运行,也可以在 Linux x86 机器上本地运行。

开发者

在 AOSP 的上下文中,开发者是指以任何方式使用 AOSP 的任何人。“开发者”一词通常用于指代可能阅读本文档的各种人员,例如原始设备制造商 (OEM)、手机制造商、运营商和片上系统 (SoC) 创建者。

Google 移动服务 (GMS)

一组可以预装在设备上的 Google 应用和 API。

目标

设备的排列组合,例如特定型号或外形。例如,aosp_cf_x86_64_phone-userdebug 代表一个带有调试信息的 x86 65MB 手机,旨在 Cuttlefish 模拟器上运行。

治理理念

由 Google 领导的开放手机联盟 (OHA) 最初创立了 Android。如今,许多公司(包括 OHA 的原始成员和其他公司)都在 Android 上投入了巨资。这些公司已投入大量工程资源来改进 Android 并将 Android 设备推向市场。

投资 Android 的公司这样做是因为他们认为开放平台是必要的。Android 有意且明确地是一项开源工作(与自由软件相对);一群具有共同需求的组织汇集资源,协作开发共享产品的单一实现。首先,Android 理念是务实的。目标是每个贡献者都可以定制和自定义的共享产品。

当然,不受控制的自定义可能会导致不兼容的实现。为了防止不兼容,Android 开源项目 (AOSP) 维护 Android 兼容性计划,该计划阐明了成为 Android 兼容设备意味着什么,以及设备制造商要达到该状态需要做什么。任何人都可以出于任何目的使用 Android 源代码,Google 欢迎所有合法用途。但是,要参与 OHA 成员围绕 Android 构建的共享应用程序生态系统,设备制造商必须参与 Android 兼容性计划。

AOSP 由 Google 领导,Google 负责维护和进一步开发 Android。虽然 Android 由多个子项目组成,但 AOSP 严格来说是项目管理。Google 将 Android 视为一个单一的、整体的软件产品,而不是发行版、规范或可替换部件的集合。Google 的意图是让设备制造商将 Android 移植到设备;他们不实现规范或策划发行版。

接下来做什么?

  • 如果您是 AOSP 新手,并且想浏览 AOSP 开发教程,请继续学习 AOSP 教程

  • 如果您认为您的设备需要 Android 兼容,请参阅 Android 兼容性计划

  • 如果您想了解 AOSP 的背景,包括 Google 对该平台的参与,请参阅 AOSP 常见问题解答