2014-12-02 133 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隧道,因此它应该足够安全。

相关问题