本页介绍了如何在 Cuttlefish 上下载、构建和运行 AAOS SDV。
获取 AAOS SDV 源代码
按照下载 Android 源代码中提供的说明操作。
设置构建环境
在您的工作目录中,获取 envsetup.sh 脚本的源代码以设置构建环境:
source build/envsetup.sh此脚本会导入若干命令(包括本页中使用的命令),让您能够使用 Android 源代码。如需查看脚本的源代码,请参阅
platform/build/envsetup.sh。如需查看内置帮助,请输入 hmm。
选择目标
在构建 SDV 之前,请先确定要构建的 目标。如需确定要构建的目标,请使用 lunch
命令,后跟表示您要构建的目标的字符串。例如,使用以下命令为 Cuttlefish 模拟器构建目标:
lunch sdv_core_cf-trunk_staging-userdebug此命令会选择要构建的产品、发布配置和变体,并将选择存储在环境中。
SDV 的 lunch 目标在位于 devices/google/sdv 目录中的单独 Git 项目中提供。如需详细了解可用目标,请参阅
device/google/sdv/README.md。主要的 Cuttlefish (cf) 目标包括:
sdv_core_cf-trunk_staging-userdebug- 构建在 Cuttlefish (cf) 上运行的 AAOS SDV Core (sdv_core) 映像。sdv_media_cf-trunk_staging-userdebug- 构建包含 virtIO 虚拟化媒体 API (sdv_media) 的 AAOS SDV Core 映像。sdv_media_har_cf-trunk_staging-userdebug- 构建一个映像,该映像扩展了 AAOS SDV 媒体 (sdv_media_cf)lunch目标,以包含 高可用性渲染器 (HAR)。HAR 会在启动时自动运行。sdv_ivi_cf-trunk_staging-userdebug- 构建包含 SDV 网关和 Java 示例应用的车载 信息娱乐系统 (IVI) 映像。sdv_ivi_cf_ds-trunk_staging-userdebug- 构建一个映像,该映像扩展了 AAOS SDV IVI 目标 (sdv_ivi_cf),并包含 Display Safety 的 DriverUI 和仪表板实现。
构建 AAOS SDV
运行以下命令以构建目标。根据工作站的规范,首次构建需要 30 到 60 分钟。后续构建所需的时间会显著缩短。
mbuild 的输出会显示在 $OUT_DIR 中。如果您构建不同的目标,则每个目标 build 都会显示在 $OUT_DIR 中。
使用 Cuttlefish 测试 build
构建 AAOS SDV 后,请使用 Cuttlefish 测试 build。
如需使用 build 启动 Cuttlefish,请执行以下操作:
cvd createCuttlefish 会使用您构建的目标 (
sdv_core_cf-trunk_staging-userdebug) 运行。Cuttlefish 启动后,系统会显示以下消息:VIRTUAL_DEVICE_BOOT_COMPLETED Virtual device booted successfully运行
adb以连接到 Cuttlefish。运行
adb devices以验证 build 是否正在运行。系统会显示类似以下内容的结果:List of devices attached 0.0.0.0:6520 device运行
cvd stop以关机。
如需使用不同的 build 运行多个 Cuttlefish 实例,请参阅 Cuttlefish: 多租户。
问题排查
本部分介绍了如何排查在下载、构建或运行 AAOS SDV 期间可能发生的错误。
RBE 错误
如果遇到任何远程构建执行 (RBE) 错误,请从 .bashrc 或 .zshrc 中移除 USE_RBE 和 ENABLE_RBE_BOOTSTRAP 的定义
cvd:此机器不支持虚拟机管理器 crosvm
如果 Cuttlefish 报告您的机器不支持虚拟机管理器 crosvm,请运行以下命令以安装 Cuttlefish:
sudo apt install cuttlefish-common找不到 cvd
如果您收到 cvd not found 错误,请执行以下操作:
Cuttlefish 崩溃循环
如果 Cuttlefish 进入崩溃循环,请执行以下操作:
- 如需停止所有 Cuttlefish 实例,请运行
cvd stop。 - 使用 Cuttlefish 重新测试 build。