使用 Android 虚拟设备测试您的应用

作为全新虚拟设备测试版计划的一部分,现在使用 Firebase 测试实验室时,您可以选择使用虚拟设备进行测试。虚拟设备以高保真的虚拟方式模拟特定的 Android Nexus 设备。这些设备的调度可用性最高,最适合用于日常开发或持续集成测试。

为什么要使用虚拟设备?

与真机设备相比,虚拟设备具有以下优点:

  • 高可用性:使用虚拟设备进行测试时,可以更快地运行测试并获得测试结果。虚拟设备是按需创建的,因此您的测试几乎可以立即开始,便于您快速验证您的应用。因此,虚拟设备是测试应用小更新或进行回归测试的理想选择。
  • 更长的测试持续时间:在真机设备上测试时,每台设备只能持续测试 30 分钟。虚拟设备支持长达 60 分钟的测试持续时间,因此适合运行时间更长的测试,特别是衡量应用的性能。
  • 费用更低:用于测试应用的每台虚拟设备的价格为每小时 1 美元。由于虚拟设备费用低,因此非常适合用于进行涉及持续集成系统或签入代码之前的日常测试。如需了解详情,请参阅测试实验室费用结算

如何使用虚拟设备测试您的应用

使用虚拟设备测试应用的方式与使用真机设备的测试相同。在选择测试维度以配置测试矩阵时,您直接选择虚拟设备即可:

测试应用的最佳做法

在虚拟设备上使用测试实验室测试应用时,您可以选择的选项更多。我们建议您在整个应用开发生命周期内按以下方式测试应用:

  • 在 Android Studio 中:开发应用时,可使用 Android Studio 模拟器或连接的真机设备来检查每个构建版本,以进行初始验证。如果您有 Instrumentation 测试,也可以在测试实验室提供的真机设备或虚拟设备上通过 Android Studio 运行这些测试。
  • 在使用测试实验室时选择常规的低分辨率中等 DPI (MDPI) 虚拟设备:与使用其他虚拟设备相比,在测试实验室提供的常规低分辨率 MDPI 手机虚拟设备上对应用运行 Robo 测试和 Instrumentation 测试的速度更快。您可以使用 API 级别为 23、24 和 25 的 MDPI 虚拟设备。要通过 gcloud 命令行界面使用此设备,请使用 NexusLowRes 机型 ID。
  • 在参与共享项目时,使用持续集成 (CI) 系统对每次代码更改进行测试:如果您在参与大型项目,或者如果您参与的是使用 GitHub 或类似网站共享的项目,我们建议您使用持续集成 (CI) 系统,并且在 CI 系统每次运行时或者在每次发出拉取请求之前,都在虚拟设备上测试您的应用。要详细了解如何搭配 CI 系统使用测试实验室,请参阅搭配持续集成系统使用 Android 测试实验室
  • 在发布重大应用更新之前:在发布涉及重大的界面和功能变化的应用更新之前,我们建议您在真机设备上使用测试实验室来测试应用。这有助于确保您的应用在各款常用的真机设备上运行状况良好,同时确保在测试中覆盖那些依靠虚拟设备无法模拟的真机设备功能的任何应用功能。如需详细了解这些功能,请参阅已知限制

已知限制

虚拟设备目前无法模拟某些真机设备功能,或者只能有限地模拟。下表总结了虚拟设备上当前不能使用的功能或受限的功能:

功能 详细信息
非 x86 应用二进制接口 (ABI) 虚拟设备只支持 x86 ABI。如果您在使用 Android NDK 进行开发,请确保针对 x86 指令集生成代码。如需了解详情,请参阅 ABI 管理

注意:如果您的测试矩阵中有部分测试被标记为无效,可能是因为您的应用依赖于原生 ARM 代码。
视频编解码 目前,虚拟设备只支持 H264 视频解码,且不支持视频编码。

注意:目前虚拟设备测试视频只能以每秒一帧的速度播放,流畅度不及真机设备测试视频。
OpenGL ES 3.x 在虚拟设备上无法使用 OpenGL ES 3.x 及更高版本的图形库。
Camera HAL v3 要详细了解 Android Camera HAL v3.0,请参阅 Camera HAL v3 概览

发送以下问题的反馈:

此网页
需要帮助?请访问我们的支持页面