一、真機遠程調試步驟:
(非數據線操作要求需要手機和pc端在同一個路由器下)
1、將手機連接到pc端
2、adb devices 檢測設備
3、adb tcpip 5555 確定手機和pc端的通訊(端口)
4、拔掉手機
5、adb connect <手機ip地址>
6、adb disconnect 取消遠程調試
1、adb是什么?
adb是用來連接安卓手機和pc端的橋梁
2、adb組成:
1、客戶端(client):運行在自己電腦上,可以通過adb命令來調用起一個客戶端;
2、服務端(server):運行在自己電腦上的后台,負責管理client和daemon進行通信;
3、守護進程(daemon):運行在模擬器或Android設備后台;
二、adb命令
1、adb devices 檢測設備
2、adb version 檢測版本
3、adb shell 登錄設備 (ll ls cp 命令 都可以用,進入到linux命令環境了,相當於執行遠程命令)
4、adb pull <手機路徑> <本機路徑> 從手機中拉取信息到本地電腦上
5、adb push <本機路徑> <手機路徑> 從本機電腦中推送信息到手機上
6、adb logcat 打印日志
打印日志到本地:adb logcat >本地路徑(如:adb logcat > D:\log.txt)
7、查看包名:adb shell "dumpsys window windows | grep mFocusedApp"
三、常用五個配置項
1、devicesName (設備名稱) 命令獲取: adb devices
2、platformName (設備操作系統名稱) 設備:Android
3、platformVersion (操作系統版本) Android版本:9.0
4、appPackage (需要連接APP的包名) 命令獲取:pm listpackages -3 (獲取手機上安裝的第三方應用)
或直接獲取當前的app包名:adb shell "dumpsys window windows | grep mFocusedApp"
5、appActivity (需連接App的啟動項名稱) 命令:dumpsys window windows |grep -i current
6、unincodeKeyboard (輸入中文時,需要添加) 例:app['unicodeKeyboard']=True
# 比如下面 platformName 和 platformVersion 兩個配置項 desired_caps = {} desired_caps['platformName'] = 'Android' #測試平台,不能寫錯 desired_caps['platformVersion'] = '9' #平台版本,不能寫錯 desired_caps['deviceName'] = 'test' #設備名稱 #apk 文件路徑名,如果設備還沒有此應用,則會安裝。 什么是apk文件? #android application package <安卓移動App安裝包> # desired_caps['app'] = r'd:\apk\toutiao.apk' #一般可以在手機上先安裝好app #app package名,一定要有,是開發者給app取的名字,可以唯一標識這個app # 安卓上運行某個app,不是根據它的路徑而是appid ,也就是這package name desired_caps['appPackage'] = 'io.manong.developerdaily' # app默認Activity,也是必須的參數。 desired_caps['appActivity'] = 'io.toutiao.android.ui.activity.LaunchActivity' # 一定要有該參數,否則測試過程中無法輸入中文,加上這個參數會新加一種unicode輸入法(測試完成后 需在手機設置中切換回來自己的輸入法,否則不能使用) desired_caps['unicodeKeyboard'] = True # 保證了app 測試前不會清除應用數據,缺省是會清除數據的 desired_caps['noReset'] = True # appium server 認為 和客戶端之間 無響應最大時間,超過這個時間就會停止服務 desired_caps['newCommandTimeout'] = 6000 desired_caps['automationName']='uiautomator2'
