Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

使用 Android 虚拟设备开始进行测试

适用于 Firebase Test Lab 的 Android 虚拟设备 (AVD) 是对 Android 设备的高保真模拟。Test Lab 中的 AVD 具有最高的可用性,最适合用于日常开发或持续集成测试。它们与适用于 Android Studio 的 AVD 类似,但针对云测试性能进行了优化,因此两者之间存在一些差异(例如,Test Lab 中的 AVD 采用模拟数据连接,而非 WLAN 连接)。

为什么使用虚拟设备?

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

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

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

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

测试应用的最佳做法

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

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

已知限制

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

功能 详细信息
非 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 概览
虚拟专用网 (VPN) 目前,虚拟设备不支持使用 VPN。