- info: [HTTP] --> POST /wd/hub/session {"desiredCapabilities":{"app":"xxxx/xxx.apk","noReset":true,"newCommandTimeout":600,"noSign":true,"unicodeKeyboard":true,"platformName":"Android","udid":"127.0.0.1:62001","deviceName":"XXXXX","resetKeyboard":true},"capabilities":{"alwaysMatch":{"appium:app":"xxxx/xxxx.apk","appium:deviceName":"XXXXX","appium:newCommandTimeout":600,"appium:noReset":true,"appium:noSign":true,"platformName":"android","appium:resetKeyboard":true,"appium:udid":"127.0.0.1:62001","appium:unicodeKeyboard":true},"firstMatch":[{}]}}
//脚本通过服务端的地址告诉appium服务端我的一些参数
[Appium] Creating new AndroidDriver (v1.17.1) session
//创建android的session(session:客户端和服务端保持连接的一种方式)
[Appium] Capabilities:
[Appium] app: 'xxxx/xxxx.apk'
[Appium] noReset: true
[Appium] newCommandTimeout: 600
[Appium] noSign: true
[Appium] unicodeKeyboard: true
[Appium] platformName: 'Android'
[Appium] udid: '127.0.0.1:62001'
[Appium] deviceName: 'XXXXX'
[Appium] resetKeyboard: true
//创建androidDriver的参数
[AndroidDriver] Retrieving device list
[debug] [ADB] Trying to find a connected android device
[debug] [ADB] Getting connected devices...
//尝试获取设备的列表
[AndroidDriver] Using device: 127.0.0.1:62001
[debug] [ADB] Setting device id to 127.0.0.1:62001
//使用设备为xxx,设置设备为xxxx
[debug] [AndroidDriver] Checking whether app is actually present
//检查app是否存在
[debug] [ADB] Running '/xxxx/Android/sdk/platform-tools/adb' with args: ["-P",5037,"-s","127.0.0.1:62001","shell","echo","ping"]
//检查设备是否能正常响应
[debug] [AndroidDriver] Pushing settings apk to device...
//将settings apk安装到设备上,settings apk帮助appium来完成一些操作
[debug] [ADB] Getting install status for io.appium.settings
[debug] [ADB] Running '/xxx/Android/sdk/platform-tools/adb' with args: ["-P",5037,"-s","127.0.0.1:62001","shell","pm","list","packages","io.appium.settings"]
[debug] [ADB] App is installed
//获取settings的安装状态
[debug] [AndroidDriver] Enabling Unicode keyboard support
[debug] [AndroidDriver] Pushing unicode ime to device...
//安装完输入法
[AndroidDriver] Unsetting previous IME com.example.android.softkeyboard/.SoftKeyboard
[debug] [AndroidDriver] Setting IME to 'io.appium.android.ime/.UnicodeIME'
//查看原来的输入,设置unicode输入法为默认的输入法
[debug] [ADB] Running '/xxx/Android/sdk/platform-tools/adb' with args: ["-P",5037,"-s","127.0.0.1:62001","shell","ime","enable","io.appium.android.ime/.UnicodeIME"]
[debug] [ADB] Running '/xxx/Android/sdk/platform-tools/adb' with args: ["-P",5037,"-s","127.0.0.1:62001","shell","ime","set","io.appium.android.ime/.UnicodeIME"]
//执行输入法是否可用,如果可用设置输入法
[debug] [AndroidDriver] Pushing unlock helper app to device...
.......
//接下来安装unlock,尽量设置设备不锁屏
[debug] [AndroidDriver] Parsing package and activity from app manifest
//从APP的 manifest去解析app的package和activity
[debug] [ADB] badging package: xxxx
[debug] [ADB] badging act: xxx
//解析到app的package和activity
[debug] [AndroidBootstrap] Watching for bootstrap disconnect
[debug] [ADB] Forwarding system: 4724 to device: 4724
//监听bootstrap连接上没
//将服务端4724接收到接口转发到设备上的4724,这样才能和设备进行通讯
[debug] [UiAutomator] Found jar name: 'AppiumBootstrap.jar'
[debug] [ADB] Running '/xxxx/Android/sdk/platform-tools/adb' with args: ["-P",5037,"-s","127.0.0.1:62001","push","/usr/local/lib/node_modules/appium/node_modules/appium-android-bootstrap/bootstrap/bin/AppiumBootstrap.jar","/data/local/tmp/"]
//将电脑上的 jar放到手机上
[debug] [ADB] Possible activities, to be checked: com.zhihu.android.app.ui.activity.MainActivity, com.zhihu.android.com.zhihu.android.app.ui.activity.MainActivity
//获取焦点的apk的package和activity
[debug] [ADB] Getting focused package and activity
.....
[debug] [ADB] Running '/Users/lilydouble/Library/Android/sdk/platform-tools/adb' with args: ["-P",5037,"-s","127.0.0.1:62001","shell","dumpsys","window","windows"]
//获取apk的activity
[debug] [MJSONWP] Calling AppiumDriver.getSession() with args: ["7b5f0760-d4ae-469b-a23d-9aa03c019da2"]
[debug] [AndroidDriver] Shutting down Android driver
[debug] [AndroidDriver] Resetting IME to com.example.android.softkeyboard/.SoftKeyboard
//断开服务,重置输入法为系统默认的输入法