实现测试工具模式

测试工具模式是 Android 10 中新增的一项功能,适用于希望自动化设备或设备群的第三方应用开发者。此功能提供了一种方法来擦除 Android 设备上的所有用户数据、保留 ADB 密钥并跳过所有首次设置屏幕。这使用户能够在启动后立即运行 UI 测试,而无需任何手动交互。

自定义

您可以通过检查 ActivityManager.isRunningInUserTestHarness() 来确定设备是否处于 Test Harness 模式。 尽量减少自定义; 限制为跳过可能破坏 UI 测试或需要手动交互的设置屏幕(在键盘或设置向导上)等操作。

实现

PersistentDataBlockManagerInternal 的默认实现在 PersistentDataBlockService 中。 Test Harness 模式在 TestHarnessModeService 中实现。

Test Harness 模式的默认实现使用与恢复出厂设置保护相同的存储机制,以将 adb 密钥临时存储在持久分区中。 如果测试设备上已实现具有恢复出厂设置保护的持久分区,则几乎不需要任何工作来支持该功能。

没有设置持久分区的 OEM 需要在运行 TestHarnessModeService 之前实现 PersistentDataBlockManagerInternal

检查 Test Harness 模式的状态

启用 Test Harness 模式后,ActivityManager.isRunningInUserTestHarness() 返回 true

运行 Test Harness 模式

启用 Test Harness 模式会擦除设备上的所有数据,并将设备设置为进行测试。 这意味着设备上所有可能干扰测试的部分(例如自动同步帐户、软件包验证和自动更新)默认情况下均已禁用,但用户可以重新启用它们。

运行 adb 命令以启用 Test Harness 模式

adb shell cmd testharness enable