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