對Android比較熟悉的開發(fā)人員,對adb通過USB(USB連接Android設備)調試Android設備應該不會陌生,因為大部分資料都是這樣 做的。但是假如你的Android設備沒有USB口,只有網(wǎng)口,能不能調試呢?(比如移植過程中通過NFS啟動的Android系統(tǒng),再比如你的設備上面 USB設備匱乏。)答案是肯定的。本文我將以我最近的經驗,介紹一下adb怎樣通過tcp/ip來調試Android設備。
adb早期版本只能通過USB來對設備調試,從adb v1.0.25開始,增加了對通過tcp/ip調試Android設備的功能。
C:\>adb Android Debug Bridge version 1.0.26 ...................... connect <host>:<port> - connect to a device via TCP/IP disconnect <host>:<port> - disconnect from a TCP/IP device ........................
如果你想adb通過tcp/ip來調試設備,必須要滿足如下條件:
1、設備上面首先要有網(wǎng)口。沒有網(wǎng)口,那就是“巧婦難為無米之炊”了。
2、設備和研發(fā)機(PC機)已經接入局域網(wǎng),并且設備設有局域網(wǎng)的IP地址。
3、要確保研發(fā)機和設備能夠相互ping得通。
4、研發(fā)機已經安裝了Android SDK(要確保SDK版本是2.0之后的版本)。
5、檢查研發(fā)機上的adb的版本,是否是1.0.25之后的版本。方法就是在shell中敲入adb,回車,顯示幫助,第一行就是adb版本信息,如上面所示。
6、確保Android設備中adbd進程(adb的后臺進程)已經運行。adbd進程將會監(jiān)聽端口5555來進行adb連接調試。
本文假設設備的ip為192.168.1.5,下文將會用這個IP建立adb連接,并調試設備。
1、首先Android設備需要先啟動,如果可以話,可以確保一下adbd啟動。
2、在研發(fā)機中,輸入:
adb connect 192.168.1.5:5555
如果連接成功會進行相關的提示,如果失敗的話,可以先kill-server命令,然后重試連接。
adb kill-server
3、如果連接已經建立,在研發(fā)機中,可以輸入adb相關的命令進行調試了。比如adb shell,將會通過tcp/ip連接設備上面。和USB調試是一樣的。這里就不多說了。
4、調試完成之后,在研發(fā)機上面輸入如下的命令斷開連接:
adb disconnect 192.168.1.5:5555
這樣就通過TCP/IP完成了對Android設備的調試工作了,希望對大家有所幫助。如有錯誤的地方,請不吝指教。
補充:
感謝Eric的留言,讓我對這個問題進行更深入的思考和理解。有一些設備可能adbd沒有監(jiān)聽5555端口,只監(jiān)聽的了5037端口,不能通過網(wǎng)絡來調試。為了解決這個問題請參考《通過網(wǎng)絡使用adb》,這篇文章對adb為什么只監(jiān)聽5037進行了詳細的描述,請各位參考。