adb本身提供了網路除錯的功能,所以,在不能直接用usb連上android手機的情況下,可以使用wifi連線adbd進行除錯。具體方法如下:
如果只是暫時需要用wifi連adb:
1. 手機、pc連上ap,確保兩者能夠正常分配ip(ifconfig檢視):
pc:手機:
(可以ping一下,驗證互通;若不互通,請檢查ap,pc,手機的網路設定)
2. usb連上手機,確保adb devices能夠找到:
3. adb tcpip 5555(埠號,可以指定其他值),該命令將會重啟手機上的adbd,開啟網路除錯功能:
4. 斷開手機到pc的usb連線,adb connect 192.168.31.196:5555,提示connected即為連線成功:
5. 此時adb devices就能夠看到通過tcp連線的手機了:
6. 此時,使用adb shell,就已經用wifi連上手機了:
7. 斷開連線,手機關機(或重啟)會自動斷開adbd到pc上adb的tcp連線;除此之外,有其他方法:
a) adb disconnect 192.168.31.120, 可以從adb互動中exit,再執行該命令(tcp連線暢通,互動沒有卡頓情況下);
b) 另外開啟乙個終端執行上述命令(此時另乙個終端的adb互動自動結束);
c) kill掉pc上的adb,也可結束adb互動,但不會清除adb devices中的裝置;
方法一需要每次先將手機通過usb連線到pc,使用adb tcpip命令開啟網路除錯功能,一旦手機重啟,又要重複這些步驟,比較麻煩。
一勞永逸的方法是,在手機的/system/build.prop中增加一行配置:service.adb.tcp.port=5555(同樣可以指定為其他值),實現開機就支援網路除錯,不需要先usb連上手機。
可以先將/system/build.prop從手機中pull出來,修改後再push進去(需要root許可權):
(注意:上面的adb remount命令需要root)
此後,每次重啟,wifi連線成功(可在pc上ping一下)後,就能直接使用adb connect 192.168.31.120連上手機了。
wifi連線的adb使用起來和usb連線的沒有任何區別,可以正常使用adb shell, adb logcat, adb am,adb reboot等命令,使用eclipse單步除錯也沒有任何問題(絕對**。唔,當然,如果wifi訊號不好,會很卡)。
下面就用eclipse裝乙個了乙個helloworld,並進行單步除錯,沒有任何問題:
adb和adbd分別位於pc和手機上,是典型的c/s模式。通常情況下,二者通過usb連線,而本文介紹的則通過tcp連線。工作原理是,pc端的adb命令通過usb(或tcp)連線傳送到手機端的adbd上,adbd執行具體的操作,並將相應的結果返回給adb,最後再終端中顯示出來。感興趣的同學可自行研究其原始碼,原始碼位於android專案的system/core/adb目錄(不知道如何獲取android原始碼,請檢視《從github獲取最新android原始碼》)。
沒有root手機也可以使用wifi除錯,唯一的要求是啟用手機的網路除錯功能,是不是**感頓生?是不是在想如何通過其他手段開啟某手機的tcp除錯功能,沒錯,在某知名黑客大賽上,就有黑客使用植入了惡意程式的「充電器」(偽裝,帶有mcu的usb控制器)輕鬆入侵了手機(不只是android,感興趣的同學自行搜尋)。
ps:最近在調android的usb-otg功能,手機因為插上了otg線,不能繼續用usb連線adbd,所以試了一下wifi連線,實驗成功,記錄在此,方便日後查閱。
通過wifi除錯android程式
資料線丟了,不想花錢去買,在網上看了看,android手機居然可以通過wifi進行程式的除錯,太好了,自己搞了一下,雖然網上寫的很詳細,但是還是有些問題,記錄下來,下次參考。1.首先讓android 聽指定的埠 這一步需要使用shell,因此手機上要有終端模擬器,不過網上很多,隨便找個就行了,依次敲...
通過wifi除錯android程式
看到網上一些程式寫的很複雜,基本上需要root才行,對於行貨的機器,root之後可能會失去保修.所以能不root還是盡量選擇不要root 如果root之後,可以選擇adbwireless這款軟體,很方便,點下按鈕就能準備好機器.如果不root也是可以的,需要確保你的電腦和手機都連上了wifi並處於同...
Android 使用Wifi連線ADB除錯App
在手機端使用超級終端進行設定 如果前面顯示的符號是 則執行su命令切換到 然後一次執行以下命令 setprop service.adb.tcp.port 9999 9999是我指定的埠下聯客戶端連線需要使用相同的埠 stop adbd start adbd 執行ok的情況下應該是不返回的 在wind...