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