实现自动化测试框架模式

自动化测试框架模式是 Android 10 中新增的一项功能,旨在供希望对设备或设备群进行自动化测试的第三方应用开发者使用。该功能提供了一种方法,用于擦除 Android 设备上的所有用户数据、保留 ADB 密钥并跳过所有首次设置屏幕。这使得用户可以在启动后立即运行界面测试,而不需要任何手动操作。

自定义

您可以通过检查 ActivityManager.isRunningInUserTestHarness() 确定设备是否处于自动化测试框架模式。尽量减少自定义;仅限于跳过会破坏界面测试或需要手动操作的设置屏幕(如在键盘上或在设置向导中)等自定义。

实现

PersistentDataBlockManagerInternal 的默认实现位于 PersistentDataBlockService 中。自动化测试框架模式是在 TestHarnessModeService 中实现的。

自动化测试框架模式的默认实现使用与恢复出厂设置保护机制相同的存储机制,以便将 adb 密钥临时存储在持久性分区中。如果已经在测试设备上实现了恢复出厂设置保护机制的持久性分区,则几乎不需要执行任何操作即可支持该功能。

未设置持久性分区的 OEM 需要先实现 PersistentDataBlockManagerInternal,然后再运行 TestHarnessModeService

检查自动化测试框架模式的状态

启用自动化测试框架模式后,ActivityManager.isRunningInUserTestHarness() 将返回 true

运行自动化测试框架模式

启用自动化测试框架模式会擦除设备上的所有数据并设置设备以进行测试。这意味着默认情况下,设备中可能会干扰测试的所有部分(例如,自动同步账号、文件包验证和自动更新)都将被禁用,但用户可以重新启用。

运行 adb 命令以启用自动化测试框架模式:

adb shell cmd testharness enable