在VirtualBox中使用Android取消启动模拟器

时间:2018-03-01 15:08:47

标签: android android-emulator adb virtualbox android-x86

描述

我使用VirtualBox运行Android-x86 7.1。我希望adb connect从主持人到访客。对于adb设备,我经历了一种非常随机的行为。一旦虚拟机运行,就有可能出现名为emulator-5554的模拟器。有时它被列出,有时它不是。使用adb connect 127.0.0.1连接到设备会产生以下结果:

  • 如果列出emulator-5554,则设备127.0.0.1:5555会被标记为offline,但无法使用。那么必须使用emulator-5554
  • 如果未列出emulator-5554,我可以毫无问题地使用设备127.0.0.1:5555

adb devices -l显示模拟器来自虚拟机:device product:android_x86_64 model:VirtualBox device:x86_64 transport_id:1

问题

即使emulator-5554工作正常,我也可以与虚拟机通信,但我不能依赖它,因为我想自动化。 127.0.0.1由我的VirtualBox网络配置提供。名称emulator-5554似乎是随机的,可能会发生变化。因此,我需要使用adb connect 127.0.0.1,这在模拟器联机时是不可能的。

VirtualBox配置

网络设置

  • 只有适配器1处于活动状态,适配器2-4未启用
  • Attatched to: NAT
  • Port forwarding
    • 名称:ADB#1,协议:TCP,主机IP:127.0.0.1,主机端口:5555,访客IP:10.0.2.15,访客端口:{ {1}}
    • 名称:5555,协议:ADB#2,主机IP:TCP,主机端口:127.0.0.1,访客IP:5554,访客端口:{ {1}}

USB设置

  • 10.0.2.15未选中

目前的方法

当前的方法由我所做的所有当前设置表示,这些设置仍会导致随机出现5554

使用Enable USB Controller& emulator-5554也没有任何效果。

问题

我可以做些什么来阻止adb kill-server启动并因此出现在adb -s emulator-5554 emu kill中?

1 个答案:

答案 0 :(得分:1)

我可以使用以下端口转发规则解决问题。

  • 只有适配器1处于活动状态,适配器2-4未启用
  • Attatched to: NAT
  • Port forwarding
    • 名称:ADB#1,协议:TCP,主机IP:留空,主机端口:55551,访客IP:留空,访客端口:5555
    • 名称:ADB#2,协议:TCP,主机IP:留空,主机端口:55541,访客IP:留空,访客端口:5554

因此,我的第一种方法的不同之处在于将主机和来宾IP留空,以及为主机和来宾端口选择不同的端口。