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
的序列號,大多數嘗試的操作要么是無操作,要么是拋出。