要使用 Android 虚拟设备 (AVD),Android 模拟器支持图形用户界面 (GUI) 和命令行界面 (CLI)。您可以为您的环境选择最佳工作流程。
- 创建和管理虚拟设备 GUI 是为大多数应用开发者和用户提供的简单工具。
- 从命令行启动模拟器 为高级用户和自动化提供了一种灵活的方式。例如,使用多个 AVD 或设置持续测试和持续集成。要开始使用,请参阅 tools 中的示例)。
使用预构建版本启动 AOSP 汽车 AVD
要使用预构建的 AOSP 汽车 AVD 快速启动和测试,请使用开源脚本从 ci.android.com
下载和启动模拟器构建版本。该脚本已在 macOS 和 Linux 上经过测试。
您需要 Curl 才能使用此脚本。
要运行该脚本
- 将
launch_emu.sh
脚本内容复制到您的本地文件,假设您使用launch_emu.sh
作为本地文件名。 - 使您的本地脚本可执行。例如,运行
chmod +x ./launch_emu.sh
。 - 通过运行带有
./launch_emu.sh -h
的脚本来检查可用选项。 - 在
ci.android.com
上,转到aosp-main-throttled
分支,然后选择sdk_car_x86_64
为绿色的最新构建版本。例如,11370359。如果您没有看到构建信息,请退出您的 Google 账号,然后重试。 - 使用构建 ID 下载并安装模拟器相关二进制文件。例如,
./launch_emu.sh -i -a 11370359
。 - 在此之后,您可以使用
./launch_emu.sh
启动下载并安装的模拟器(不要使用-i
或-a
选项)。 - 要下载并安装另一个构建 ID,请运行
./launch_emu.sh -c
以清理您的工作区,然后重复上述步骤 4 和步骤 5。
要在启动模拟器时指定 Android 模拟器命令行启动选项选项,请使用 -v
选项。例如
./launch_emu.sh -v “-cores 4 -memory 6144 -no-snapshot"
构建 AOSP 汽车 AVD
构建 AOSP 汽车 AVD 的过程与为手机构建 AVD 映像(例如,aosp_car_x86_64)类似
- 要设置开发环境并识别分支,请参阅源代码控制工具。然后查看下载源代码
ANDROID_BRANCH="android12L-release"
REPO_URL="https://android.googlesource.com/platform/manifest"
mkdir $ANDROID_BRANCH && cd $ANDROID_BRANCH && repo init -u $REPO_URL -b $ANDROID_BRANCH --partial-clone && repo sync -c -j8 - 构建 AVD 映像
. build/envsetup.sh && lunch sdk_car_x86_64-userdebug && m -j32
- 运行 AVD 映像(根据需要附加其他命令行启动选项)
emulator &
例如
图 1. Android 虚拟模拟器屏幕
关于此过程的注意事项
创建汽车 AVD
添加新的汽车 AVD 与添加新设备几乎相同。例如,1660554 创建了一个新的 avd_car
AVD。
要创建汽车 AVD
- 根据需要创建公司和设备文件夹。此示例使用
$ANDROID_BUILD_TOP/device/google_car/avd_car
。 - 创建产品 makefile
avd_car.mk
,该文件定义如何构建 AVD。 - 创建一个设备文件夹
avd_car_device
,用于包含BoardConfig.mk
和source.properties
。 - 将新的
makefile
和新的lunch
选项添加到AndroidProducts.mk
。 - 要构建和运行新的
avd_car
AVD. build/envsetup.sh && lunch acar-userdebug && m -j32 && emulator &
打包 AVD 映像 zip 文件
您可以打包并与他人共享您的 AVD,或在另一台计算机上使用它。使用 emu_img_zip.mk
生成 AVD 映像 zip 文件
- 在构建 AVD 后,将
emu_img_zip
作为目标m emu_img_zip
- AVD 映像 zip 文件(前缀为
sdk-repo-linux-system-images
)在名为$ANDROID_PRODUCT_OUT
的文件夹中创建。
构建 AVD 内核
AVD 内核与其他 Android 内核类似,因为所有内核都是预构建的映像。通常,您可以按原样使用每个 Android 版本中的标准 goldfish 内核预构建映像。
要试用内核更改
- 运行以下一系列指令
mkdir goldfish-kernel-54 cd goldfish-kernel-54 repo init -u https://android.googlesource.com/kernel/manifest -b common-android11-5.4 repo sync BUILD_CONFIG=common/build.config.gki.x86_64 build/build.sh BUILD_CONFIG=common-modules/virtual-device/build.config.goldfish.x86_64 build/build.sh ls -l ./out/android11-5.4/dist/
- 根据 AVD makefile 替换代码库中的内核二进制文件。例如,
x86_64-vendor.mk
包括x86_64-kernel.mk
。
内核代码和配置位于以下位置
项目 | 值 |
---|---|
分支 | common-android11-5.4 (在 Android 11 中使用) |
清单 | kernel/manifest/common-android11-5.4 |
common-modules/virtual-device | kernel/common-modules/virtual-device/android11-5.4 |
内核 | kernel/common/android11-5.4 |
创建新的设备配置文件
要使用户能够在 Android Studio AVD 管理器中创建特定的 AVD,请参阅创建和管理虚拟设备。设备制造商可以通过使用包含在 AVD 映像中的 devices.xml
文件来定义自己的硬件规格,例如屏幕尺寸和 DPI。
- 例如,请参阅
automotive.xml
中的汽车设备配置文件。 - 对于 HMI 开发或原型设计,可以将多个设备添加到同一 AVD 映像的文件中。
- 将该文件包含在 OEM AVD 映像 zip 文件中的
[ABI]
文件夹中。例如,作为x86_64
。 - 设备制造商还可以创建模拟器皮肤。例如,为更高的保真度用户体验定义额外的硬件按钮。这不仅对开发者工作流程有用,而且对其他任务(例如用户体验研究和审核)也很有用。
创建 AVD 映像 XML 文件
设备制造商可以创建 AVD 映像 XML 文件,供 Android Studio 下载。
- 例如,请参阅 AAOS AVD 映像 XML 文件
sys-img2-1.xml
。 - 设备制造商可以为其目标用户定义自己的 OEM AVD 许可协议(采用荣誉系统),并附带 Android Emulator 的许可。当包含此类许可时,Android Studio 会获得用户的认可。
要创建映像
- 准备 AVD 映像 zip 文件。
- 解压缩
${ANDROID_PRODUCT_OUT}/sdk-repo-linux-system-images-*.zip
。 - 将
devices.xml
添加到x86_64
文件夹,然后将文件压缩为 zip 文件。例如,作为oem_avd_img_x86_64.zip
。 - 更新
oem-sys-img2-1.xml
。 - 更新 zip 文件名、大小和 shasum(示例 XML 文件在
tools
中提供)。
例如,要在 Google Cloud Storage 上托管 AVD,请参阅创建存储桶。
要上传并使 AVD 可公开访问,请参阅使数据公开
BUCKET_NAME="aaos-avd" gsutil mb gs://$BUCKET_NAME gsutil cp oem_avd_img_x86_64.zip gs://$BUCKET_NAME gsutil cp oem-sys-img2-1.xml gs://$BUCKET_NAME gsutil iam ch allUsers:objectViewer gs://$BUCKET_NAME
AVD 映像 SDK 插件网址格式为:https://storage.googleapis.com/$BUCKET_NAME/oem-sys-img2-1.xml
。例如,如果 BUCKET_NAME 是 aaos-avd,则网址为:https://storage.googleapis.com/aaos-avd/oem-sys-img2-1.xml
。
与 Android Studio 用户共享 AVD 映像
为了让您的用户可以下载 AVD 映像并通过 Android Studio 使用您的 AVD,您可以提供 SDK 插件 XML 文件。有关详情,请参阅更新 IDE 和 SDK 工具。
要从网络下载 AVD
- 将映像 zip 文件和 XML 文件托管在服务器上。
- 向您的目标用户提供网址。
- (可选)通过用户名和密码限制访问。
或者,为了加快开发速度,请将 AVD 下载到本地目录
- 将 XML 文件和 XML 文件中指定的所有工件保存到名为
ADDON_DIR
的文件夹中(例如,所有 AVD 映像 zip 文件)。 - 将网址指定为
file://$ADDON_DIR/oem-sys-img2-1.xml
。