Android adb網路除錯模式

2021-06-19 09:47:40 字數 2342 閱讀 2843

對android比較熟悉的開發人員,對adb通過usb(usb連線android裝置)除錯android裝置應該不會陌生,因為大部分資料都是這樣做的。但是假如你的android裝置沒有usb口,只有網口,能不能除錯呢?(比如移植過程中通過nfs啟動的android系統,再比如你的裝置上面usb裝置匱乏。)答案是肯定的。本文我將以我最近的經驗,介紹一下adb怎樣通過tcp/ip來除錯android裝置。

adb早期版本只能通過usb來對裝置除錯,從adb v1.0.25開始,增加了對通過tcp/ip除錯android裝置的功能。

c:/>adbandroid debug bridge version 1.0.26...................... connect :- connect to a device via tcp/ip disconnect :- disconnect from a tcp/ip device........................

如果你想adb通過tcp/ip來除錯裝置,必須要滿足如下條件:

1、裝置上面首先要有網口。沒有網口,那就是「巧婦難為無公尺之炊」了。

2、裝置和研發機(pc機)已經接入區域網,並且裝置設有區域網的ip位址。

3、要確保研發機和裝置能夠相互ping得通。

4、研發機已經安裝了android sdk(要確保sdk版本是2.0之後的版本)。

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、在研發機中,輸入:

adb connect 192.168.1.5:5555

如果連線成功會進行相關的提示,如果失敗的話,可以先kill-server命令,然後重試連線。

adb kill-server

3、如果連線已經建立,在研發機中,可以輸入adb相關的命令進行除錯了。比如adb shell,將會通過tcp/ip連線裝置上面。和usb除錯是一樣的。這裡就不多說了。

4、除錯完成之後,在研發機上面輸入如下的命令斷開連線:

adb disconnect 192.168.1.5:5555

這樣就通過tcp/ip完成了對android裝置的除錯工作了,希望對大家有所幫助。如有錯誤的地方,請不吝指教。

補充:

一直在為windows 7 64bit下面沒有adb驅動而煩擾,前些天還被萬惡的usb adb驅動給困擾,後來雖然東拼西湊的把adb驅動弄好了,不過萬惡的也只能跑在虛擬機器或者linux下面,昨天把那台式電腦裝了ubuntu,但其配置過差,速度真的不盡人意。

還好,今天乙個偶然的機會看了adb的命令幫助,發現其可以使用adb connect連線上裝置進行除錯,既然走網路路線,那麼就不用跟驅動打架了,windows 7 64bit下面一樣可以使用。

在上面這篇文章有提到需要使用

#set service.adb.tcp.port 5555

設定service.adb.tcp.port的值,但很奇怪在我的froyo上面沒有效果,adb驅動一樣不監聽5555埠。

以下是我的配置過程:

裝置端$ stop adbd

$ setprop service.adb.tcp.port 5555

$ start adbd

使用busybox檢視下網路埠的監聽情況

/ # /busybox netstat -l

active internet connections (only servers)

proto recv-q send-q local address           foreign address         state      

tcp        0      0 127.0.0.1:5037          0.0.0.0:*               listen     

tcp        0      0 0.0.0.0:5555            0.0.0.0:*               listen

有在監聽了,下面就在pc機上連線下即可:

pc端先殺死服務,以防萬一

# sudo adb kill-server

# adb connect 192.168.2.231:5555

connected to 192.168.2.231:5555

下面操作就跟usb除錯沒有什麼兩樣了~~~

享受debug之旅~~

Android adb遠端除錯

adb遠端除錯能遠端打包並實時列印出裝置的日誌,再也不需要被資料線束縛。adb遠端除錯主要步驟分為八個部分,如下 關閉防火牆 由於防火牆拒絕鏈結會導致adb服務無法啟動,因此需要關閉區域網的防火牆。配置adb環境 與jdk配置環境相似,在環境變數path下新增sdk的tools和platform t...

Android網路程式設計selector模式

下面上 socketchannel ch null socketaddress addr new inetsocketaddress 172.16 3.194,11904 ch socketchannel.open addr selector selector selector.open ch.co...

Linux Apache和Nginx網路模型詳解

程序阻塞和掛起的定義 阻塞是由於程序所需資源得不到滿足,並會最終導致程序被掛起 程序掛起的原因並不一定是由於阻塞,也有可能是時間片得不到滿足,掛起狀態是程序從記憶體排程到外存中的一種狀態,若在就緒態時,從記憶體調出到外存中,就是就緒掛起態,若在阻塞態時,從記憶體調出到外存中,就轉換成了阻塞掛起態 n...