題記:在用pc連接手機進行測試時,我一直都是用的usb有線連接,后來遇到一個尷尬的問題,那就是我手機要充電的呀!
於是上網尋求了這個解決方案,通過wifi無線連接,而且無線連接調試比有線連接還有一些優點,通過下面這篇文章詳細說明。
文章來源:大白測試。
adb通過wifi連接android設備
問題背景:
近期的項目測試中,需要將移動設備與廠商機器進行usb連接視頻傳輸(投屏)。測試過程中需要定位問題,經常需要查看實時日志,
移動設備已經和廠商機器usb連接投屏,無法用usb連接到PC,那么有什么辦法可以解決上面的問題呢?(尷尬,usb連接視頻傳輸了)。
adb連接方式:
adb支持usb連接模式和tcpip連接模式,我們可以用
tcp/ip模式通過wifi無線連接adb。
其他應用場景:
usb線比較松的時候,adb連接經常斷開;usb線連接,手機助手等程序會自動連接adb,經常導致adb斷開;
采用wifi連接adb可以減少上述問題發生,對測試人員來說也是非常有幫助的。
具體連接步驟如下:
1、確認本機PC沒有任何adb設備連接,包括模擬器和usb連接
查看當前PC端連接有多少設備
adb devices命令后,列表顯示為空;
(靈光:pc端是可以連接多個設備的,adb devices可以查看連接設備列表,可以在genymotion中開啟多個手機,這樣pc端就連上了,
我在做appium自動化的時候,也嘗試過將一個腳本跑到多個手機,具體流程在筆記里有)
2、將遠程android設備接入Wi-Fi,並查看其IP地址
查看android設備的IP地址,這里有三種方式查看Android設備IP。
(1). 設置-關於手機-狀態信息-IP地址中查看
(2). 設置-WLAN-點擊當前鏈接上的Wi-Fi查看IP
例如:設置—〉無線或網絡---〉WLAN設置—〉查看當前連接Wi-Fi的IP地址(部分機型需要按menu鍵並選擇“高級”選項---〉IP地址)
(3). 通過adb命令查看設備IP地址:adbshell netcfg
前提:(設備已經和PC建立了usb連接)
確保電腦和Android設備連接在同一個WIFI網絡環境(同一個局域網下,進行通信)
3、本機command命令下執行ping android設備的IP
例如ping 10.129.49.143(手機ip),如果ping成功,說明可以連接
ping成功

4,執行 adb connect
知道設備IP地址之后,就可以用adb connect命令通過IP和端口號連接adb。
adb connect 10.129.49.143
如果顯示連接成功,則可繼續執行后面的操作;如果不成功,如下圖顯示:
connect拒絕

用adb tcp ip模式重啟adb
adb tcpip 5555

連接成功,connected to 10.129.49.143:5555
5、adb connect ip 成功以后可以執行原來usb連接時的所有命令
如adb install,adb logcat等,下圖為項目測試時wifi連接android設備,在androidstudio環境,查看實時log

(下一步要好好學學adb 一些日志等其它操作)
知識提升:ᕦ(・ㅂ・)ᕤ
Android Debug Bridge
我們一般簡稱為adb,它是一個非常強大的命令行工具,通過adb工具,你能夠與你的android設備進行通信。
adb是基於C/S模式的程序,包含以下三個組件:

1)adb client(客戶端)
client是運行在PC端的,該組件發送命令,可以通過發出adb命令從命令行終端調用客戶端。
每當我們發起一個adb命令的時候,就會開啟一個client程序。當然,當我們開啟DDMS或者ADT的時候,也會自動創建client。
當我們開啟一個client的時候,它首先會去檢測后台是否已經有一個server程序在運行着,否則會開啟一個adb-server進程。
所有的client都是通過5037端口與adb-server進行通信的。
2)adb daemon(adb后台程序)
Daemon,該組件作為一個后台進程運行在模擬器/真實Android設備中,在設備上運行命令。
daemon使用端口的范圍是5554-5585,每個模擬器/設備連接到PC端時,總會開啟這樣一個后台進程,
並且為其分配了兩個連續的端口,比如:
Emulator1, console: 5554
Emulator1, adb: 5555
因為每個設備都分一組兩個端口,所以adb連接手機的最大數量為16。
端口的作用,在這兩個端口中,其中偶數端口是用於server與設備進行交互的,
可以讓server直接從設備中讀取數據,
而奇數端口是用來與設備的adb進行連接通信的。(偶數傳數據進行交互,奇數用來維持與設備(pc)進行連接通信)
3)adb server(服務器)
Server,該組件管理客戶端和后台程序之間的通信,作為一個后台的程序運行在PC端。
當一個server開啟的時候,會自動綁定並且監聽5037端口,接收client通過該端口發送過來的命令。
同時server還會對5555-5585間的奇數端口進行掃描,進行對已連接設備的定位。
結語:sunt覺得,每次在問題的解決上,再多學習一點,總會有新的收獲~~(●—●)!