使用设备

Trade Federation 使用名为 ITestDevice 的抽象类来运行测试。该抽象类可将最通用的 Android 设备具体化:

  • 具有序列号
  • 具有状态:在线、可用、恢复或不可用
  • 有一些可靠性的概念。例如,如果我们运行某个命令,则可以区分命令尚未完成的情况、设备不支持运行命令的情况以及设备在运行命令时变得无响应的情况。

不同类别的设备

ITestDevice 的 3 种主要实现代表 3 种常见的用例。

物理设备

这是一种实际的硬件,通过 USB 或使用 adb 的 TCP 功能连接到 TF 主机。TestDevice 类位于 ddmlib 库的顶部,它是一个面向 adb 的 Java 接口。因此,adb devices 中列出的任何物理设备都可以实例化并用作 TestDevice

模拟器

模拟器位于其他进程中,因此经过 TF 的特殊处理。要与模拟器交互,请为命令指定 --emulator 参数。有关详情,请参阅 LocalSdkBuildProviderSdkAvdPreparer

无设备

假设您有一个测试根本不与设备交互。例如,它可能只是从某项服务下载文件,并验证文件本身是否有效。NullDevice 是一项 ITestDevice,只是一个存根。它拥有诸如 null-device-N 这样的序列号,并且尝试最多的操作是静默 no-op 或抛出操作。