如何为远程计算机开发和本地设备部署设置ADB

时间:2012-11-07 21:20:26

标签: android adb remote-debugging

我的情况是:我从家里远程办公并通过Windows远程桌面登录我的工作机器。我在我的工作计算机上使用Eclipse作为Android应用程序的开发环境。

使用ADB,我希望能够将应用程序从我的工作计算机部署到家庭网络上的设备,以用于模拟器不能正常运行的情况。

我发现这篇文章讨论了一个非常类似的场景,除了部署到在本地PC上运行的模拟器,而不是部署到本地设备:

http://www.41post.com/5003/programming/android-adb-remote-emulator-access

我正在尝试采取相同的步骤,但要弄清楚如何在家庭WiFi网络上定位本地设备&系在我当地的家用电脑上,而不是当地的模拟器。

现在,我已将远程PC设置为尝试连接到端口5585上的公共路由器IP - 但在我的路由器中,我将哪个IP /端口转发到本地设备?

在使用仿真器的示例中,它们转发到运行仿真器的本地PC地址和端口5555,并且adb未在本地PC上运行。我已将路由器配置为转发到我的设备IP,设备在WiFi上,以及设备被连接的本地PC IP。

但是,在这两种情况下,当我在远程PC上尝试adb connect <routerIP>:5585时,它会给我一个错误unable to connect to <routerIP>:5585:5585。尝试转发/收听其他端口时,我得到相同的响应。我在路由器日志中没有收到任何安全错误,因此端口转发似乎正在运行。

问题:

  • 在本地网络上配置端口转发以使用远程adb实例连接到本地设备时,我应转发哪些本地IP /端口号?
  • 我应该定位设备所连接的本地PC IP还是本地设备IP?
  • 如果我定位本地设备IP,我应转发哪个端口号?
  • 我是否需要在本地PC上运行adb?

6 个答案:

答案 0 :(得分:40)

我有类似的情况。我在远程桌面上进行开发,但我的Android设备已连接到我的本地笔记本电脑。我希望能够在远程桌面上的eclipse中使用adb和android插件,并连接到连接到笔记本电脑的设备。在互联网上搜索并没有找到任何真正有用的东西之后,我决定编写一个可以解决问题的端口转发器。你可以找到它here。我希望它对其他人也有帮助。

答案 1 :(得分:22)

从Android 4.3开始,你可以:

  1. adb服务器侦听所有接口。您有两种选择:
    • 制作gListen=1并重新编译adb(我已在Linux-x64计算机上为您编译并将其here
    • 使用-a参数adb -a -P 5037 fork-server server&
    • 启动adb服务器
  2. 使用额外参数在远程计算机上使用adb,例如adb -H <remote_host> shell

答案 2 :(得分:4)

您可以通过端口转发解决问题。

  • 从Chrome应用商店下载Secure Shell应用
  • 连接到您的计算机(逐步设置)
  • 在此连接中,禁用adb服务器:adb kill-server
  • 创建新的端口转发连接(与常规连接相同,但将SSH Arguments字段设置为:-N -R 5037:localhost:5037)
  • 在笔记本电脑上,打开终端并启用adb服务器:adb start-server

答案 3 :(得分:3)

用于远程主机+本地设备测试的另一种设置。这对于许多在家中使用笔记本电脑工作并连接到仍在办公室中的开发主机的人来说非常有用。请注意,我假设devhost / laptop都在Unix上运行,但是其他操作系统将能够在命令提示符/ shell上运行命令。

# Kill old adb server.
devhost$ adb kill-server 

# Activate adb server on client
laptop$ adb start-server

# Start ssh tunnel. Hide/minimize this window not to close it by accident
laptop$ ssh -XC -R 5037:localhost:5037 <your devhost machine>

# Should work by now with the local device connected to the laptop
devhost$ adb logcat 

答案 4 :(得分:1)

我的情况需要使用位于不同网络上的VM,但我需要使用(Azure VM)。 VM和我的本地笔记本电脑都在运行Windows 10.首先,我必须在我的本地机器上安装USB Redirector RDP Edition(售价80美元,但可能有免费替代品),然后在VM上安装Google Android USB驱动程序VM上的Universal Adb Driver。我现在能够在VM上的Android Studio中加载 Android Studio App 项目,在我的笔记本电脑上连接Android设备,并在设备上调试应用程序。

答案 5 :(得分:0)

可能有一个更简单的解决方案,提供设备,本地和远程机器属于同一网络。 假设您的设备在网络上有一定的IP,让我们假设您决定使用您首选的PORT:嗯,您可以执行以下步骤。

在插有设备的机器上,请运行:

adb devices

adb tcpip PORT

在远程计算机上,您需要停用“发现USB设备”,“发现网络目标”和“端口转发”,然后运行:

adb connect IP:PORT

您已准备好在远程计算机上进行调试。

希望这会对某人有所帮助......

此致