【注】文中提起的
Appium版本為 v1.6.5
在 appium-adb 代碼中主要覺得重要的部分是ADB類所輸出的常用函數清單的注冊,如下圖所示:
adb 功能注冊
通過 ADB.prototype[fnName] = fn 的方式将 appium-adb/lib/tools/index.js 中進行定義的 methods 來注冊, 通過檢視 index.js ,可以看到 methods 中包含了 adb, aapt, systemCall, apkSigning, apkUtils等指令的集合。如下圖所示:
methods 定義
這樣将所有的adb相關的指令進行了封裝,并統一放置到 methods 類中進行管理。比如在 appium-android-driver/lib/android-helpers.js 中使用 adb.setDeviceId() 函數來設定預設裝置:
helpers 創建 adb 過程
如上圖所示,其中的 createADB 函數即為 appium-adb/lib/adb.js 中實作的adb 執行個體化操作,然後調用systemCallMethods (appium-adb/lib/tools/system-calls.js ) 中的 setDeviceId() 函數進行指定裝置操作。