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