Google 致力于为黑人社区推动种族平等。查看具体举措

源代码控制工具

如需使用 Android 代码,您需要使用 Git(一种开源版本控制系统)和 Repo(一种对 Git 构成补充的 Google 代码库管理工具)。如需查看常规操作(例如上传更改以供审核)的摘要,请参阅源代码控制工作流程

Git

Git 旨在处理分布在多个代码库上的大型项目。Android 使用 Git 执行本地操作,例如建立本地分支、提交、对比差异、修改。打造 Android 项目所面临的挑战之一就是确定如何最好地支持外部社区 - 从业余爱好者社区到生产大众消费类设备的大型 OEM。我们希望组件可以替换,并希望有趣的组件能够在 Android 之外自行发展。我们最初决定使用一种分布式修订版本控制系统,经过筛选,最后选中了 Git。

如需详细了解 Git,请参阅 Git 文档

Repo

Repo 可以在必要时整合多个 Git 代码库,将相关内容上传到 Gerrit 修订版本控制系统,并自动执行 Android 开发工作流程的部分环节。

Repo 分为两部分:第一部分是您从 git-repo-downloads 中下载并安装Repo 启动器这是一个 Python 脚本,该脚本知道如何初始化检出,并可下载第二部分,即 Android 源代码检出中包含的完整 Repo 工具。完整的 Repo 工具默认位于 $SRCDIR/.repo/repo/... 中,它可以从下载的 Repo 启动器接收转发的命令。

Repo 并非用来取代 Git,只是为了让您在 Android 环境中更轻松地使用 Git。它使用清单文件将 Git 项目汇总到 Android 超级项目中。repo 命令是一个可执行的 Python 脚本,您可以将其放在路径中的任何位置。使用 Android 源代码文件时,您可以使用 Repo 执行跨网络操作,例如使用一个 Repo 工作目录。

在大多数情况下,您可以仅使用 Git(不必使用 Repo),或结合使用 Repo 和 Git 命令以组成复杂的命令。不过,使用 Repo 执行基本的跨网络操作可大大简化您的工作。如需详细了解 Repo,请参阅 Repo 命令参考文档Repo README、可在 Repo 中启用的预上传钩子(测试)以及 AOSP 中的常用文档

其他工具

Gerrit 是一个基于网页的代码审核系统,适用于使用 Git 的项目。Gerrit 允许所有授权用户提交更改(如果这些更改通过代码审核,便会自动纳入到项目中),以此鼓励他们更集中地使用 Git。此外,Gerrit 可以在浏览器中并排显示更改,并支持代码内注释,从而使审核工作变得非常轻松。

Android 代码搜索支持在不下载任何内容的情况下搜索 AOSP。您可以使用“代码搜索”来查看 AOSP 源代码,在开放源代码分支之间切换,以及浏览交叉引用。如需了解详情,请参阅 Google Developers 网站上的代码搜索文档

Android Studio 是用于开发 Android 应用的官方集成开发环境 (IDE)。

安装 Repo

Repo 这款工具可让您在 Android 环境中更轻松地使用 Git。请参阅上文的 Repo 概览,了解其用途以及相关文档的链接。

Repo 分为两部分:第一部分是您安装的启动器脚本,它可以与第二部分(即包含在源代码检出中的完整 Repo 工具)通信。如需安装 Repo,请执行以下操作:

  1. 确保您的主目录中有一个 bin/ 目录,并且它包含在您的路径中:

    mkdir ~/bin
    PATH=~/bin:$PATH
    
  2. 下载 Repo 启动器,并确保它可执行:

    curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
    chmod a+x ~/bin/repo
    
  3. (可选)验证启动器与我们的签名是否匹配:

    gpg --recv-key 8BB9AD793E8E6153AF0F9A4416530D5E920F5C65
    curl https://storage.googleapis.com/git-repo-downloads/repo.asc | gpg --verify - ~/bin/repo
    

适用于旧版 Python 2 系统的旧版 Repo

如果您使用的是未安装 Python 3.6 及更高版本的旧系统,请尝试下载仍支持 Python 2.7 的旧版 Repo 启动器。此方法不会无限期有效,但在您升级系统之前可能会有所帮助。

curl https://storage.googleapis.com/git-repo-downloads/repo-1 > ~/bin/repo
chmod a+x ~/bin/repo