標籤:android 調試 網路 tcp usb
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沒有任何不同,可以正常使用adb shell, adb logcat, adb am,adb reboot等,使用Eclipse單步調試App也沒有任何問題。沒有ROOT的Android手機也可以使用,唯一的要求是手機上的adbd啟用了網路調試功能,是不是邪惡感頓生?(通過其他手段開啟某手機的tcp調試功能)
下面就用Eclipse裝一個了一個HelloWorld,並進行單步調試,沒有任何問題:
PS:最近在調Android的USB-OTG功能,手機因為插上了OTG線,不能繼續用USB串連adbd,所以試了一下WiFi串連,實驗成功,記錄在此,方便日後查閱。
WiFi(網路)調試Android手機