在 VirtualBox 中使用 Android 禁止启动模拟器
Suppress launching emulator using Android within VirtualBox
描述
我 运行 Android-x86 7.1
使用 VirtualBox。我想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
,来宾端口: 5555
- 名称:
ADB#2
,协议:TCP
,主机 IP:127.0.0.1
,主机端口:5554
,来宾 IP:10.0.2.15
,来宾端口: 5554
USB 设置
Enable USB Controller
未勾选
当前方法
当前方法由我所做的所有当前设置表示,这些设置仍然会导致随机出现 emulator-5554
。
使用 adb kill-server
和 adb -s emulator-5554 emu kill
也没有任何效果。
问题
我能做些什么来阻止 emulator-5554
启动并因此出现在我的 adb devices
中吗?
我可以使用以下端口转发规则解决问题。
- 只有适配器 1 处于活动状态,适配器 2-4 未启用
Attatched to: NAT
Port forwarding
:
- 名称:
ADB#1
,协议:TCP
,主机 IP:留空,主机端口:55551
,来宾 IP:留空,来宾端口:5555
- 名称:
ADB#2
,协议:TCP
,主机 IP:留空,主机端口:55541
,来宾 IP:留空,来宾端口:5554
因此,与我的第一种方法的不同之处在于主机和来宾 IP 均留空,并为主机和来宾端口选择不同的端口。
描述
我 运行 Android-x86 7.1
使用 VirtualBox。我想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
,来宾端口:5555
- 名称:
ADB#2
,协议:TCP
,主机 IP:127.0.0.1
,主机端口:5554
,来宾 IP:10.0.2.15
,来宾端口:5554
- 名称:
USB 设置
Enable USB Controller
未勾选
当前方法
当前方法由我所做的所有当前设置表示,这些设置仍然会导致随机出现 emulator-5554
。
使用 adb kill-server
和 adb -s emulator-5554 emu kill
也没有任何效果。
问题
我能做些什么来阻止 emulator-5554
启动并因此出现在我的 adb devices
中吗?
我可以使用以下端口转发规则解决问题。
- 只有适配器 1 处于活动状态,适配器 2-4 未启用
Attatched to: NAT
Port forwarding
:- 名称:
ADB#1
,协议:TCP
,主机 IP:留空,主机端口:55551
,来宾 IP:留空,来宾端口:5555
- 名称:
ADB#2
,协议:TCP
,主机 IP:留空,主机端口:55541
,来宾 IP:留空,来宾端口:5554
- 名称:
因此,与我的第一种方法的不同之处在于主机和来宾 IP 均留空,并为主机和来宾端口选择不同的端口。