1. 程式人生 > >adb通過wifi連接android設備

adb通過wifi連接android設備

幫助 三種 9.4 ons 一個 pip 其他應用 net 運行

問題背景

近期的項目測試中,需要將移動設備與廠商機器進行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設備