天天看點

Appium-ADB 分析

【注】文中提起的

Appium

 版本為 v1.6.5

在 appium-adb 代碼中主要覺得重要的部分是ADB類所輸出的常用函數清單的注冊,如下圖所示:

Appium-ADB 分析

adb 功能注冊

通過 ADB.prototype[fnName] = fn 的方式将 appium-adb/lib/tools/index.js 中進行定義的 methods 來注冊, 通過檢視 index.js ,可以看到 methods 中包含了 adb, aapt, systemCall, apkSigning, apkUtils等指令的集合。如下圖所示:

Appium-ADB 分析

methods 定義

這樣将所有的adb相關的指令進行了封裝,并統一放置到 methods 類中進行管理。比如在 appium-android-driver/lib/android-helpers.js 中使用 adb.setDeviceId() 函數來設定預設裝置:

Appium-ADB 分析

helpers 創建 adb 過程

如上圖所示,其中的 createADB 函數即為 appium-adb/lib/adb.js 中實作的adb 執行個體化操作,然後調用systemCallMethods (appium-adb/lib/tools/system-calls.js ) 中的 setDeviceId() 函數進行指定裝置操作。

繼續閱讀