Trade Federation 使用名为 ITestDevice
的抽象概念来运行测试。此抽象将最低公分母 Android 设备对象化
- 它具有序列号
- 它具有以下状态:在线、可用、恢复或不可用
- 它具有一定的可靠性概念。例如,如果我们运行命令,我们可以区分以下情况:命令尚未完成的情况、设备不支持运行命令的情况以及设备在运行命令时变得无响应的情况。
设备类
ITestDevice
的三个主要实现代表三个常见的用例。
物理设备
这是连接到 TF 主机(通过 USB 或使用 adb 的 TCP 功能)的实际硬件。TestDevice 类位于 ddmlib 库之上,ddmlib 库是 adb 的 Java 接口。因此,adb devices
中列出的任何物理设备都可以实例化并用作 TestDevice
。
模拟器
TF 对模拟器进行特殊处理,因为它们存在于另一个进程中。要与模拟器互动,请为命令指定 --emulator
参数。如需了解详情,请参阅 LocalSdkBuildProvider 和 SdkAvdPreparer。
无设备
假设您有一个完全不与设备互动的测试。例如,它可能只是从某些服务下载文件并验证文件本身是否有效。NullDevice 是一个 ITestDevice
,它只是一个桩。它具有类似 null-device-N
的序列号,并且大多数尝试的操作要么以静默方式无操作,要么抛出异常。