【小技巧】AS手動實(shí)現(xiàn)無線真機(jī)調(diào)試

其實(shí)無線真機(jī)調(diào)試很簡單,走一遍流程就能學(xué)會并且記住,無需插件,無需Root,使用插件反而會將這個流程復(fù)雜化。
先放上純流程版,方便通篇閱讀之后的快速查閱,接下來還提供詳細(xì)版以供參考。
默認(rèn)讀者可以成功真機(jī)調(diào)試,控制臺使用 cmd 或者AS的 Terminal 均可。

純流程版

  1. 將手機(jī)與電腦連接在同一局域網(wǎng)內(nèi)
  2. 手機(jī)用線連接電腦,控制臺輸入命令 adb devices ,有設(shè)備編號為連接成功
  3. 控制臺輸入命令 adb tcpip 5555,將TCP模式在5555端口啟動,無任何輸出為成功啟動
  4. 拔手機(jī)線,控制臺輸入命令 adb connect 192.168.1.246:5555,192.168.1.246為手機(jī)在局域網(wǎng)的ip地址,輸出連接成功
  5. 此時(shí)無線連接已經(jīng)成功,正常調(diào)試即可

詳細(xì)版

由于公司電腦配置較低,虛擬機(jī)運(yùn)行緩慢,所以我一直傾向于真機(jī)調(diào)試,但是有線調(diào)試空間局限性很大,經(jīng)常在測試上線的幾天身后圍一屁股人(小公司沒有版本管理跟自動編譯),很不方便,無線調(diào)試就是一個很好的解決方案。

很多人傾向與使用AS插件,但是實(shí)踐證明手動連接更加方便靈活,插件在某些意義上復(fù)雜了這個流程。

檢查連接

首先,你得有一個能正常有線調(diào)試的手機(jī),還得有一根數(shù)據(jù)線,因?yàn)槲碦oot的手機(jī)需要用電腦的ADB來來打開TCP模式并且綁定端口。
真機(jī)用線連電腦,打開Terminal(其實(shí)我更習(xí)慣用cmd),鍵入 adb devices,這個命令會輸出所有連接到這臺電腦上的設(shè)備,每個設(shè)備有一個獨(dú)一無二的序列號。見圖1。

圖1 檢查連接.png

此時(shí),我電腦上連接了一臺設(shè)備,連接方式為有線。

進(jìn)行無線連接

在確定你的手機(jī)與電腦成功聯(lián)機(jī)之后,輸入命令 adb tcpip 5555,這個命令的作用是打開手機(jī)的TCP模式,并且將其綁定到5555接口。其中,5555端口是一個習(xí)慣使用的端口,就像MySql一般使用3306端口一樣,也可以隨意指定,只要不產(chǎn)生端口沖突即可。

圖2 打開tcp模式并綁定端口.png

這條命令執(zhí)行后沒有任何輸出,但是手機(jī)會出現(xiàn)一次,類似于與電腦斷線并且重新插線的反應(yīng),代表執(zhí)行成功。
打開成功之后,就可以拔掉手機(jī)數(shù)據(jù)線了。

接下來執(zhí)行連接命令,但是首先我們需要進(jìn)入手機(jī)WIFI網(wǎng)絡(luò)詳情,找到此時(shí)手機(jī)WIFI中的IP地址。接下來就可以執(zhí)行連接命令了,連接命令為 adb connect 手機(jī)IP地址:TCP綁定的端口
例如,我手機(jī)的IP地址是192.168.1.246,之前TCP模式綁定的端口為5555,此時(shí)我需要執(zhí)行的連接命令為 adb connect 192.168.1.246:5555

圖3 執(zhí)行連接命令.png

此時(shí)控制臺輸出connected to 192.168.1.246:5555,表示無線連接成功。

TCP模式一旦開啟,只在手機(jī)重啟時(shí)才會關(guān)閉,關(guān)閉后如果還需使用需要重新開啟。斷網(wǎng)重連,換WIFI,不會關(guān)閉,只要保持手機(jī)電腦在統(tǒng)一WIFI下就不需要重新開啟。
不過如果手機(jī)一旦斷網(wǎng),或者切換WIFI,與電腦的無線連接會立即斷開,如果需要重新連接,重新執(zhí)行一次adb connect命令就好。
之前說過,使用插件反而會將這個流程復(fù)雜化,是因?yàn)檫@個過程本來就很簡單,就是幾個命令的事情,這個功能是AS原生支持的,使用插件的話,如果斷網(wǎng)或者換WIFI,插件會認(rèn)為手機(jī)的TCP模式已經(jīng)關(guān)閉,需要重新用線連接一次電腦,來開啟TCP模式。(也可能是我用的插件不夠智能?)

PS:如果執(zhí)行adb connect命令時(shí)候,出現(xiàn) 由于目標(biāo)計(jì)算機(jī)積極拒絕,無法連接 的提示,檢查一下TCP模式是否開啟,端口號是否正確。

調(diào)試

有線與無線連接,調(diào)試方式?jīng)]有差別,點(diǎn)擊編譯器上的綠色箭頭 Run app 即可。
如果無線調(diào)試時(shí)候OFFLINE了,關(guān)掉手機(jī)無線網(wǎng)絡(luò),重新連接一次,然后重新執(zhí)行adb connect命令即可,就像有線調(diào)試時(shí)那樣。

連接多臺設(shè)備

之前檢查連接的時(shí)候,使用過一個 adb devices命令,可以得到一個已連接設(shè)備的序列號表,一次連接多臺設(shè)備跟連接一臺設(shè)備流程類似,通過序列號指定設(shè)備即可。

如圖4,此時(shí)我的電腦通過有線接入兩臺設(shè)備,通過無線接入一臺設(shè)備。

圖4 同時(shí)接入三臺設(shè)備.png

此時(shí)如果直接執(zhí)行大部分adb命令,比如開啟TCP模式,都會得到一個異常提醒,多于一個設(shè)備。如圖5。

圖5 命令執(zhí)行異常.png

這種情況下,只要指定設(shè)備序列號就可以正常執(zhí)行。
例如,需要進(jìn)行TCP模式開啟,adb -s f87c75bb tcpip 5555,但是與電腦建立連接的adb connect命令不需要加序列號,因?yàn)镮P地址本來就相當(dāng)于是序列號了。

PS:手機(jī)有線連接與無線連接都與一臺電腦進(jìn)行連接的話,會被識別為兩臺設(shè)備。就像筆記本的有線網(wǎng)卡與無線網(wǎng)卡互相獨(dú)立。但這種連接沒有意義,所以推薦無線連接完成之后就把線拔了把。

圖6 識別為兩臺設(shè)備.png

個人理解,難免有錯誤紕漏,歡迎指正。轉(zhuǎn)載請注明出處。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容