C

构建 AOSP 系统映像

Android 是专为各种各样、形式不同的设备创建的开源软件栈。Android 的主要目的是创建一个可供运营商、OEM 和开发者将其创新想法变为现实的开源软件平台,并推出一种成功、实用的产品,以改善用户的移动体验。

要求

您的开发工作站应满足或超出以下硬件要求

  • 需要 64 位环境。
  • 至少 250GB 的空闲磁盘空间以检出代码,以及额外的 150GB 以构建它。如果您进行多次构建,则需要更多的空间。
  • 如果您正在检出镜像,则需要更多的空间(超过 500GB),因为完整的 Android 开放源代码项目(AOSP)镜像包含所有曾经使用过的 Git 存储库。
  • 如果您正在运行 Linux,则需要至少 16 GB 的可用 RAM/交换空间。
  • Ubuntu 18.04 (Bionic Beaver)或安装了 Xcode 和命令行工具的最新版的 macOS。
  • Python 2.7 或更高版本。
  • 对于 Linux,请安装以下链接中列出的软件包:设置 Linux 构建环境
  • 对于 macOS,请安装以下链接中列出的软件包:设置 macOS 构建环境

有关更多信息,请参阅 Google 的 构建要求 文档。

下载和构建 AOSP

使用 Android 代码需要安装 GitRepo 工具。从 Google 代码源下载并安装 Repo 工具

初始化 Repo 客户端

安装 Repo 启动程序后,设置您的客户端以访问 Android 源代码仓库

  • 创建一个空目录以存放您的工作文件。如果您正在使用 macOS,这必须在区分大小写的文件系统上。给它起任何名字都可以
    mkdir <working_dir>
    cd <working_dir>
  • 使用您的真实姓名和电子邮件地址配置 Git。要使用 Gerrit 代码审查工具,您需要一个与已注册的谷歌账户相关联的电子邮件地址。确保这是一个您可以接收消息的有效地址。您在这里提供的姓名将显示在您的代码提交的贡献中。
    git config --global user.name "Your Name"
    git config --global user.email "[email protected]"

    有关更多信息,请参阅 设置 Gerrit

  • 运行 repo init 以获取带有最新 bug 修复的最新版本的 Repo。您必须指定一个用于清单的 URL,该清单指定了 Android 源代码中包含的各种存储库在您的工作目录下的位置。
    repo init -u https://android.googlesource.com/platform/manifest
  • 要检出 Android Automotive 10 分支
    repo init -u https://android.googlesource.com/platform/manifest -b android-10.0.0_r45
  • 要检查除主分支之外的分支,请使用-b指定。有关分支列表,请参阅源代码标签和构建

初始化成功后,会显示一条消息,说明Repo已在工作目录中初始化。您的客户端目录应该现在包含一个repo目录,该目录存储如manifest等文件。

下载源代码

要从指定在默认manifest中的存储库的工作目录下载Android源代码树,请运行

repo sync

构建AOSP

  • 使用envsetup.sh脚本来初始化环境
    source build/envsetup.sh
  • 选择要构建的目标,例如
    lunch aosp_car_x86_64-userdebug
  • 使用m构建所有内容,它可以处理带-jN参数的并行任务。如果您不提供-j参数,构建系统将自动选择它认为对您的系统最优化并行任务数量。
  • 构建成功后,运行以下命令打开模拟器
    emulator

构建系统映像

Android模拟器允许您在主机上以Android设备的形式运行Android系统映像,并且大多数功能都可以使用。您还可以共享构建的Android系统映像,以便其他人也可以运行它们。

  • 创建附加的sdksdk_repo
    $ make -j$(nproc) sdk sdk_repo
  • 这将在<working_dir>/out/host/linux-x86/sdk/sdk_car_x86_64下创建系统映像文件
    sdk-repo-linux-system-images-eng.[username].zip
  • 遵循启动Android模拟器下的说明,使用AVD Manager正确设置系统映像。

在特定的Qt许可证下提供。
了解更多信息。