Appium-ADB 分析

【注】文中提起的 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等命令的集合。如下图所示:

Appium-ADB 分析_第1张图片
methods 定義

这样将所有的adb相关的命令进行了封装,并统一放置到 methods 类中进行管理。比如在 appium-android-driver/lib/android-helpers.js 中使用 adb.setDeviceId() 函数来设置默认设备:

Appium-ADB 分析_第2张图片
helpers 創建 adb 過程

如上图所示,其中的 createADB 函数即为 appium-adb/lib/adb.js 中实现的adb 实例化操作,然后调用systemCallMethods (appium-adb/lib/tools/system-calls.js ) 中的 setDeviceId() 函数进行指定设备操作。

你可能感兴趣的:(Appium-ADB 分析)