adb通過wifi連接android設備
問題背景
近期的項目測試中,需要將移動設備與廠商機器進行usb連接視頻傳輸(投屏)。測試過程中需要定位問題,經常需要查看實時日誌,移動設備已經和廠商機器usb連接投屏,無法用usb連接到PC,那麽有什麽辦法可以解決上面的問題呢?
adb支持usb連接模式和tcpip連接模式,我們可以用tcpip模式通過wifi無線連接adb。
其他應用場景
usb線比較松的時候,adb連接經常斷開;usb線連接,手機助手等程序會自動連接adb,經常導致adb斷開;采用wifi連接adb可以減少上述問題發生,對測試人員來說也是非常有幫助的。
具體連接步驟如下:
1、確認本機PC沒有任何adb設備連接,包括模擬器和usb連接
查看當前PC端連接有多少設備
adb devices命令後,列表顯示為空;
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地址:adb shell netcfg
前提:(設備已經和PC建立了usb連接)
確保電腦和Android設備連接在同一個WIFI網絡環境(同一個局域網下,進行通信)
3、本機command命令下執行ping android設備的IP
例如ping 10.129.49.143,如果ping成功,說明可以連接
ping成功
4,執行 adb connect
知道設備IP地址之後,就可以用adb connect命令通過IP和端口號連接adb。
adb connect 10.129.49.143
如果顯示連接成功,則可繼續執行後面的操作;如果不成功,如下圖顯示:connect拒絕
用adb tcpip模式重啟adb
adb tcpip 5555
連接成功,connected to 10.129.49.143:5555
adb connect ip連接成功以後可以執行原來usb連接時的所有命令
如adb install,adb logcat等,下圖為項目測試時wifi連接android設備,在androidstudio環境,查看實時log
AndroidDebug 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(adbd後臺程序)
Daemon,該組件作為一個後臺進程運行在模擬器/真實Android設備中,在設備上運行命令。daemon使用端口的範圍是5554-5585,每個模擬器/設備連接到PC端時,總會開啟這樣一個後臺進程,並且為其分配了兩個連續的端口,比如:
Emulator1, console: 5554
Emulator1, adb: 5555
因為每個設備都分一組兩個端口,所以adb連接手機的最大數量為16。
端口的作用,在這兩個端口中,其中偶數端口是用於server與設備進行交互的,可以讓server直接從設備中讀取數據,而奇數端口是用來與設備的adbd進行連接通信的。
3)adb server(服務器)
Server,該組件管理客戶端和後臺程序之間的通信,作為一個後臺的程序運行在PC端。當一個server開啟的時候,會自動綁定並且監聽5037端口,接收client通過該端口發送過來的命令。同時server還會對5555-5585間的奇數端口進行掃描,進行對已連接設備的定位。
adb通過wifi連接android設備