我想了解在同一台 Windows 主机上并排运行基于 HAXM 加速的 Android 模拟器和 VirtualBox 是否可行。
我有一台在 VirtualBox 下运行 64 位 Linux 客户机的 Windows 主机。我偶尔需要在 VM 下使用 Android Studio,包括 Android 模拟器。x86 Android 映像需要硬件辅助虚拟化,但不幸的是,VirtualBox 在 Intel 处理器上运行时不会实现嵌套虚拟化,它只对 AMD-V 虚拟化扩展实现,而我的 PC 使用 Intel 硬件。所以我最好的选择是将模拟器移出 VM 并尝试与其他 VM 一起运行,使用 adb 通过 TCP 连接到设备的功能来远程控制模拟器。
我目前正在运行 Windows 10 1903 主机,在该主机上我使用 Intel HAXM 7.5.2 安装了 VirtualBox 6.0.10 和 Android Emulator 29.0.11。我读到,从某个版本开始,HAXM 可以与其他虚拟机管理程序共存。我的经验似乎证实了这一点,因为我可以在同一台主机上成功并行运行 Android Emulator 和一台或多台 VirtualBox 机器。
然而,这两个虚拟机管理程序似乎以某种微妙的方式相互干扰,导致在 Android 模拟器下运行的应用行为异常。例如,在浏览系统设置时,活动会崩溃,对话框会毫无理由地消失,而我却没有时间关闭它们。
但最关键的问题是,如果我尝试针对安装在模拟器上的应用程序运行经过插桩的测试套件,我会遇到各种随机故障和崩溃。我已经验证,如果我关闭所有 VirtualBox VM 并从其他主机远程运行测试套件,一切都会顺利进行。
这让我有了一些选择,但没有一个适合我的工作流程:
- 将模拟器移至第二台物理主机并通过 远程连接到它
adb connect
。这样我就需要随身携带两台电脑; - 迁移到 VMWare Workstation,它在支持 VT-x 的 CPU 上实现嵌套虚拟化。
我的问题是,是否有人能够稳定地运行硬件加速的 Android 模拟器和 VirtualBox。也许可以通过谨慎使用一些 QEmu/VirtualBox 选项来限制干扰。