AOSP 概览

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

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 兼容性计划概览
审批者
经验丰富的 AOSP 社区成员,他们在技术和设计方面为平台做出了重大贡献。在代码审核流程中,审批者会决定是否纳入某项更改。项目负责人(通常是 Google 员工)负责选择审批者,有时也会将在特定 AOSP 部分展现出杰出专业技能的验证者晋升为审批者。
兼容性定义文档 (CDD)
一种文档,列出了与 Android 兼容的设备应遵循的软件和硬件要求。
贡献者

同时也为 AOSP 源代码做贡献的人。贡献者可以是 Google 或其他公司的员工,也可以是不属于任何公司的个人。每个 AOSP 贡献者都使用相同的工具、遵循相同的代码审核流程,并受相同的编码样式所约束。您无需成为贡献者即可使用 AOSP;您可以下载 AOSP,根据自己的需求进行修改,并将其部署到设备上,而无需贡献代码供他人使用。

Google 接受的代码贡献类型存在一定限制。例如,您可能想要贡献一个替代应用 API,例如完全基于 C++ 的环境。Google 会拒绝这种贡献内容,因为 Android 鼓励开发在 ART 运行时中运行的应用。同样,Google 也不会接受与许可目标不符的贡献内容(例如 GPL 或 LGPL 库)。

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

兼容性测试套件 (CTS)

一个免费的商业级测试套件,可以下载二进制文件版本,也可以在 AOSP 中下载源代码版本。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 模拟器上的调试信息。

验证者

Android 社区中重要的贡献者,负责下载并验证对 AOSP 的更改。在您向 AOSP 提交大量高质量代码后,项目负责人可能会邀请您成为验证者。

管理理念

Android 源自于 Google 牵头并联合众多企业成立的开放手持设备联盟 (OHA)。如今,许多企业(包括 OHA 的创始成员以及其他企业)都在 Android 上投入了大量资金和人力。这些企业投入了大量工程资源来改进 Android,使用户能够享用搭载 Android 的出色设备。

这些企业在 Android 上投入了大量资金和人力,因为他们相信有必要打造一个开放的平台。我们的用意是将 Android 打造成一个开放源代码(而非免费软件)平台,显然,Android 也确实做到了这一点;众多志同道合的组织投入了大量的资源,携手打造了一个共用的平台。Android 的首要理念是务实。目标是打造一个每个贡献者都可以调整和定制的共用产品。

不受约束的定制必然会导致不兼容。为了防止不兼容,Android 开源项目 (AOSP) 还推出了 Android 兼容性计划,该计划阐释了与 Android 兼容的含义以及设备制造商实现这种兼容性需要满足的要求。任何人都能够将 Android 源代码用于任何用途,Google 欢迎一切合法的使用。不过,要参与 OHA 成员正在围绕 Android 构建的共通应用生态系统,设备制造商必须加入 Android 兼容性计划。

作为 AOSP 的主导者,Google 负责 Android 的维护和后续开发工作。虽然 Android 由多个子项目组成,但严格意义上,AOSP 这样只是出于项目管理的需要。Google 将 Android 整体视为一个软件产品(而不是可更换部件的“发行版”、规范或集合),并依此原则进行管理。Google 希望设备制造商只需将 Android 移植到其设备上,而无需实现一个规范或构建一个“发行版”。

后续操作

  • 如果您刚开始接触 AOSP,并且希望学完有关 AOSP 开发的教程,请继续学习 AOSP 教程

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

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