2014-12-02 134 views
6

我有要求部署測試應用程序,並在與IP xxx.yyy.zz.pp在同一網絡中的計算機連接的設備上發出命令。如何使用adb(android platform-tools)在遠程運行的設備上部署/執行應用程序?

我通過http://developer.android.com/tools/help/adb.html#directingcommands閱讀,但我無法獲得答案。

我試過使用platform-tools/adb connect <remote machine IP>但沒有我got unable to connect錯誤。

有沒有一種方法可以在使用adb工具的遠程運行模擬器或設備上部署和執行命令?

回答

8

adbtag wiki

的Android調試橋(ADB)是一種多功能的命令行工具,允許你 與仿真器實例或連接的Android 設備進行通信。它是一個包含三個組件的客戶端服務器程序:

  1. 客戶端,它運行在您的開發機器上。您可以通過發出adb命令從shell調用客戶端。其他Android工具,如ADT插件和DDMS也可以創建adb客戶端。
  2. 服務器,在您的開發機器上作爲後臺進程運行。服務器管理客戶端和模擬器或設備上運行的adb守護進程之間的通信。
  3. 守護進程,作爲每個仿真器或設備實例上的後臺進程運行。

adb connect命令用於本地serverdaemon連接上的網絡連接的device。但是你想要的是將本地的client連接到遠程的server。爲了達到這個目的,你需要安裝在本地和遠程系統上的最新的adb版本。

在遠程系統上啓動的adb server一個實例(其中一個,你會被堵塞裝置進入)用這個命令:

adb -a -P <PORT_NUMBER> nodaemon server 

現在,你應該能夠發送adb命令到遠程運行server從您的本地系統通過預先-H <REMOTE_IP> -P <PORT_NUMBER>到所有adb命令:

adb -H <REMOTE_IP> -P <PORT_NUMBER> devices 

或者設置ANDROID_ADB_SERVER_ADDRESS=<REMOTE_IP>ANDROID_ADB_SERVER_PORT=<PORT_NUMBER>客戶端的環境變量可讓您避免必須爲每個adb命令指定<REMOTE_IP><PORT_NUMBER>

如果省略,<PORT_NUMBER>將默認爲5037

+0

感謝這有助於。我們也可以在機器(或連接的設備)上創建AVD,然後使用andriod-platform工具連接到AVD – amjad 2014-12-09 17:14:23

1

如何使用SSH連接到您的設備所連接的機器併發出ADB命令? 這至少是我們在我們公司所做的事情,我們有數十臺設備,我們可以像這樣控制。

1

或許這將幫助:

它,我已經幾個月前專門開發時考慮到該遠程ADB命令的java庫。基本的想法是提供一些抽象層,其中設備可以在遠程機器上進行類似訪問,因爲它是本地連接的。檢查出來:

https://github.com/lesavsoftware/rem-adb-exec

PS。它使用SSH隧道,因此它應該足夠安全。

相關問題