我正在尝试在 Hyper-V 上托管的虚拟机中进行 Android 开发,但似乎无法找到在 guest 操作系统中使用 HAXM 的方法。我能找到的所有内容似乎都是关于在要托管 Android 模拟器的计算机上禁用 Hyper-V。
仅供引用,主机操作系统是 Windows 8.1, guest 操作系统是 Windows 10 预览版。我使用的是最新的 Android IDE 和 Java 7 SDK,以及它们附带的默认模拟器。
最佳答案
您不能同时使用 Intel 加速器 (HAXM) 和 Hyper-V。基本上,两者都是虚拟机管理程序,试图同时使用 CPU 的 Intel VT(虚拟化)扩展,但这是不可能的。
- Hyper-V 是一种 1 类虚拟机管理程序(裸机上),它完全拥有处理器的 Intel VT 扩展。
- 尝试使用 CPU VT 扩展的任何其他 2 类虚拟机管理程序(例如 HAXM 或 VirtualBox)都将失败或导致系统错误
如果没有父虚拟机管理程序的帮助,VM 中运行的操作系统无法访问 VT 扩展。如果 VM 中运行的 HAXM 在 Hyper-V 上运行,则它无法访问 VT 扩展。 Hyper-V 支持嵌套虚拟化,即在 Hyper-V 上运行的虚拟机中的 Hyper-V,但您可能需要特定版本的操作系统,并且需要一些时间来配置所有内容。 Windows 10 支持 Windows 容器,但我认为您不能使用该技术来运行模拟器。
可以使用官方Android emulator 。该模拟器可以利用 HyperV 来提高性能。您必须卸载(或避免运行)HAXM。您可以使用 IP 地址将开发虚拟机连接到 Android 虚拟机。
不久前,使用 HyperV 运行模拟器的唯一替代方案是 the Android Emulators for Visual Studio (您可以与 Eclipse 或 Android Studio 一起使用,无需安装 Visual Studio)。虽然这些模拟器现在可以使用,但微软建议开发者使用官方的 Android 模拟器。
最后,如果你想使用 HAXM,you can configure an additional boot entry在您的 Windows 中并使用 2 类虚拟机管理程序,例如 VirtualBox。您可以使用 BCEDIT 在启动时选择计算机是否必须使用 Hyper-V 启动。每次要启用/禁用 Hyper-V 时,都必须重新启动计算机。要创建额外的启动项,您可以检查 here和 here
关于android - 是否可以在使用 Hyper-V 托管的 guest 操作系统上使用 HAXM?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30905952/