测试工具模式是 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