adb的那點小事——遠程adb調試

來源:互聯網
上載者:User

標籤:adb   adb wireless   adb遠端偵錯   adb debug   adb區域網路   

1.   前言1.1.  寫在前面的話

在之前的一篇文章《360電視助手實現研究》中介紹了在區域網路內直接通過adb安裝應用,本文接下來繼續介紹adb一點有意思的小東東。本系列之所以取名《adb的那點小事》是因為,只想介紹一些有意思的而且平時大多數人關注不多的方面,類似於“adb原理”、“adb如何使用”之類的老生常談不在本文的介紹範圍內。

言歸正傳,本文介紹的內容是:在區域網路內,如果進行adb遠端偵錯,即:在沒有資料線的情況下,如何在區域網路內使用adb開發。

1.2.  本文的背景

作為一名Android程式員,每天接觸最多的就是eclipse和adb了。在開發的過程中,這幾種情境我們應該並不陌生:

A.        手機正在測試同學手中,但是我們想要抓log。那麼接下來會有兩種選擇:

a)         讓測試的同學幫忙抓log,但可能抓不到自己想要的;

b)         讓測試同學把手機送過來,或者自己去取,但需要浪費至少10幾分鐘。

B.        電腦串連一台剛才其他同學(開發或測試)手機拿過來的機器。那麼接下來可能需要等待幾分鐘的時間來安裝手機驅動。

C.         長時間的使用,adb資料線損壞或者不太靈敏。

那麼有沒有一種好的辦法可以解決上述問題呢?本文接下來將做一個探討。

 

2.   技術實現研究2.1.  遠端偵錯的原理

要瞭解為什麼可以遠端偵錯,首先還是要簡單的說一下adb的原理。我們平時所說的adb在Android中是被實現為一種C/S結構的,其中Server端被稱為adbd,也即adb守護進程,該進程運行在手機中。對於C/S結構的命令的執行響應過程,大家應該都比較熟悉,不再做介紹。這裡繼續說一下adbd,adbd提供了兩種監聽用戶端請求的方式:USB和TCP/IP,其中USB方式是系統的預設監聽方式。

所以,結合《360電視助手實現研究》中的介紹,接下來我們應該怎麼做就比較明顯了:

1.         首先,設定手機的adbd為TCP/IP方式;

2.         其次,設定adbd監聽某一特定的連接埠;

3.         最後,在遠程(電腦上)通過adb connect串連到手機。

通過以上三部,我們就可以遠程adb調試和列印log了。接下來將介紹具體的實現,及需要注意的一些問題。

 

2.2.  具體技術實現

要實現adb遠端偵錯,首先需要手機具有root許可權,可以通過下面的代碼進行簡單的判斷:

 

在判斷手機具有臨時root許可權後,接下來就是設定adbd監聽的連接埠和重啟adbd使連接埠生效了,代碼如下:

在預設情況下adbd監聽的連接埠為“5555”,這裡可以根據需要(比如5555是否被佔用)進行修改。

 

在完成上一部的操作後,可以到手機“設定->WLAN->當前正在使用的wifi熱點的資訊”中查看IP資訊,也可以通過下面的方法擷取:

 

接下來就可以在電腦上的cmd下通過“adb connect”串連剛才的IP,進行遠程adb的調試了,如果成功會顯示“connected to xxxxx”;串連失敗則提示”unable to connect to xxxxx”,下面是我電腦操作的:

 

最後,在遠端偵錯完成後,記得將手機adb恢複到usb模式:

 

好了,到這裡,本文就介紹完了,有問題環境交流討論。

adb的那點小事——遠程adb調試

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.