从vagrant机器连接到android模拟器

时间:2016-05-18 11:52:32

标签: android android-emulator vagrant emulation

我正在尝试使用以下方法将我设置的流浪汉机器连接到普通计算机上的Android模拟器:

我的流浪汉机器上的

adb connect 10.0.2.2命令比我有这个输出:connected to 10.0.2.2:5555

然而,当我做adb-devices时,我有这个输出:10.0.2.2:5555 offline,这是因为我的模拟器实际上正在运行,因为当我使用adb-devices我的普通机器时我有这个输出:

List of devices attached 
emulator-5554   device

我已经尝试多次杀死并重启adb服务器,但我仍然遇到同样的问题

请有人帮我这个吗?

提前谢谢

1 个答案:

答案 0 :(得分:1)

弄清楚如何实现这一目标花了我很多时间,但这是它的要点:

  • android服务器应该只能在你的主机上运行。如果您的Android模拟器正在运行,我相信它会自动保持adb服务器运行(在主机上)。
  • 在Vagrantfile中,启用公共网络选项(为流浪者机器提供自己的IP)https://www.vagrantup.com/docs/networking/public_network.html
  • 使用vagrant ssh-config
  • 获取流浪汉ssh配置
  • ssh直接用于流浪者(不是vagrant ssh),如下所示:ssh -R 5037:localhost:5037 -l vagrant -i [private key path] [vagrant machine IP address]

-R 5037:localhost:5037指令告诉SSH创建反向端口转发,其中5037是adb服务器使用的端口。因此,在vagrant机器上运行的任何adb命令都将连接到主机上运行的adb服务器,然后主机将在模拟器(adbd)上执行它们。

因此,此方法成功地将三个adb系统(adb客户端,adb服务器,adb守护程序)分别跨越3个计算机实例(vagrant,host,emulator)。 https://developer.android.com/studio/command-line/adb.html

要测试它是否正常工作,请在流浪汉机器上运行adb devices,您应该会在列表中看到模拟器。

我无法记住原因(我认为这有几个原因),但尝试使用adb connect是一个死胡同。