對Android比較熟悉的開發人員,對adb通過USB(USB連接Android設備)調試Android設備應該不會陌生,因為大部分資料都是這樣做的。但是假如你的Android設備沒有USB口,只有網口,能不能調試呢?(比如移植過程中通過NFS啟動的Android系統,再比如你的設備上面USB設備匱乏。)答案是肯定的。本文我將以我最近的經驗,介紹一下adb怎樣通過tcp/ip來調試Android設備。
如果你想adb通過tcp/ip來調試設備,必須要滿足如下條件:
1、設備上面首先要有網口。沒有網口,那就是“巧婦難為無米之炊”了。
2、設備和研發機(PC機)已經接入局域網,並且設備設有局域網的IP地址。
3、要確保研發機和設備能夠相互ping得通。
4、研發機已經安裝了Android SDK(要確保SDK版本是2.0之后的版本)。(確保有相應的環境變量,adb在sdk的platform-tools目錄下,所以要將platform-tools所在地路徑)
5、檢查研發機上的adb的版本,是否是1.0.25之后的版本。方法就是在shell中敲入adb,回車,顯示幫助,第一行就是adb版本信息,如上面所示。
6、確保Android設備中adbd進程(adb的后台進程)已經運行。adbd進程將會監聽端口5555來進行adb連接調試。
本文假設設備的ip為192.168.1.5,下文將會用這個IP建立adb連接,並調試設備。
1、首先Android設備需要先啟動,如果可以話,可以確保一下adbd啟動。
2、在研發機中,輸入:
如果連接成功會進行相關的提示,如果失敗的話,可以先kill-server命令,然后重試連接。
3、如果連接已經建立,在研發機中,可以輸入adb相關的命令進行調試了。比如adb shell,將會通過tcp/ip連接設備上面。和USB調試是一樣的。這里就不多說了。
4、調試完成之后,在研發機上面輸入如下的命令斷開連接:
這樣就通過TCP/IP完成了對Android設備的調試工作了,希望對大家有所幫助。如有錯誤的地方,請不吝指教。
下面通過學校開發板sep6200介紹下:首先查看板子靜態ip地址,在kernel/root/init.djstjava.sh腳本中,如下
#!/system/bin/sh
ifconfig eth0 172.20.106.149 netmask 255.255.255.0 up
route add default gw 172.20.106.146 dev etho
上面腳本中172.20.106.149為板子ip,172.20.106.146為pc機ip。
啟動android后,在pc終端輸入adb connect 172.20.106.149,連接成功后輸入adb shell即可。