我可以在 Microsoft hyper-v 虚拟机中 运行 Android Studio(Android SDK 模拟器)吗?

Can I run Android Studio (Android SDK emulator) in a Microsoft hyper-v virtual machine?

我可以在 Microsoft hyper-v 虚拟机中 运行 Android Studio 和 Android SDK 模拟器吗?请仔细阅读。

我已经将 Hyper-V 大量用于其他目的。现在我需要为 Android 开发一个应用程序。

我安装了新的虚拟机 (windows 10) 并安装了 Android Studio。我不能 运行 android 模拟器,因为它缺少 'intel HAXM software'。

我读了很多关于无法将 Hyper-V NEXT 安装到 Android Studio 的信息,但 post 中没有任何关于在 Hyper-V 机器上安装的内容。

参考这个link: How to run Android Studio on Windows without disabling Hyper-V

解决方案(如果您不想禁用 Hyper-V)是使用 Microsoft 的 Android 模拟器,可免费下载 here

为了在 Android Studio 中使用它,您需要先 运行 模拟器。然后,在 Android Studio 中,转到 Run > Edit Configurations... 和 select 在部署目标选项下显示设备选择器对话框。

运行 你的项目,select VS 模拟器,忽略“关闭 Hyper-V”的邀请。

请确保在开始执行 lotosbin 建议的步骤之前完成以下操作:

打开管理员命令提示符并输入以下内容;然后重启模拟器。

`reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Android SDK Tools" /v Path /d %localappdata%\Android\sdk`

或手动更新注册表:

  1. 在 regedit 中,导航到 HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node。
  2. 创建一个名为 Android SDK Tools 的新密钥(如果还没有的话)。
  3. 导航到该键。
  4. 创建一个名为 Path 的新字符串值。将其值设置为您的 Android SDK 的位置,类似于 C:\Users\YourName\AppData\Local\Android\sdk.

Hyper-V 在 Windows 10 周年更新(2016 年 8 月发布)和 Windows Server 2016 中添加了对嵌套虚拟化的支持。但是,Microsoft 唯一支持的嵌套虚拟化用法是 运行 Hyper-V 在 VM 中,而不是 HAXM。来自official documentation、"Virtualization applications other than Hyper-V are not supported in Hyper-V virtual machines, and are likely to fail."

也就是说,最新版本的 HAXM change log 报告说英特尔 "Fixed an issue with Hyper-V nested virtualization support, which had prevented Android Emulator from booting." 因此,尽管 Microsoft 不支持它,但似乎 运行 HAXM 嵌套在 Hyper 中-V VM 可能是可能的。

如果是这种情况,要让 HAXM 在 Hyper-V VM 中工作,您需要为该 VM 启用嵌套。 运行 在 VM 处于关闭状态时执行此命令:

Set-VMProcessor -VMName <VMName> -ExposeVirtualizationExtensions $true

之后,您应该能够在 VM 中安装最新版本的 HAXM,从而允许使用 Android 模拟器。同样,我没有亲自验证过这一点,并且它不受 Microsoft 支持,因此您的情况可能会有所不同。

完全披露:我在 Microsoft 的 Hyper-V 团队工作。

[编辑 7/2/2018]:Android 仿真器支持 Hyper-V 加速已于今年早些时候宣布,目前处于预览阶段。有关详细信息,请参阅 announcement post。

Microsoft 有 announced 更好的解决方案

Today, at Build 2018, we announced a preview of the Google Android emulator that’s compatible with Hyper-V, available on the Windows 10 April 2018 Update. This enables developers with Hyper-V enabled on their machines to use a hardware accelerated Android emulator, without needing to switch to Intel’s HAXM hypervisor. Amazing work was done by the Windows Hyper-V team, with help from the Xamarin team, to make to this happen.

只是为了补充@lotosbin 的回答并添加其他信息。此信息与您在 Microsoft's standalone Android emulator 中尝试从 Android Studio 启动您的应用有关。

Select Deployment Target window 上有两个部分,即:

  1. Connected Devices - 它显示通过 USB 端口连接到计算机的物理 android 设备,例如移动设备、平板电脑(如果您想将您的应用程序部署到实际设备中)
  2. Available Virtual Devices - 它显示 Android 虚拟模拟器,这些模拟器是根据特定设备定义构建的,例如Nexus 5X API 28

有趣的是,Microsoft 的 Android 模拟器出现在 Connected Devices 部分。因此 Android Studio 将 Microsoft 的 Android 模拟器视为物理设备,即使它只是一个虚拟模拟器。请看下面的截图:

此外,您还可以在 Hyper-V 管理器中检查 Microsoft Android 模拟器的健康状况和当前状态,如下图所示:

Microsoft 在 windows 中发布了 link 以允许 Hyper-V 作为 android 模拟器 运行 的硬件加速器。

The link is here

这是说明。

  1. 在Windows搜索框中输入关于

  2. Select 关于您的电脑 在搜索结果中。

  3. 关于对话框中向下滚动到Windows规格部分。

  4. 验证 版本 至少是 1803.

  5. 在 Windows 搜索框中输入 windows features 并确保 Hyper-VWindows Hypervisor Platform 已检查。

  6. 在 Android Studio 中打开 SDK 管理器,确保您的 Android 模拟器版本至少为 27.2.7.

  7. 重新启动计算机,然后在 Android Studio 的 AVD Manager 中重新启动 Android 模拟器。

已确认:运行 Windows 10 版本 1803,启用了 Hyper-V 和 Windows Hypervisor 平台,Android Studio 的模拟器有效。我正在使用 Android Studio 3.2.1 和 Android Emulator 28.0.22.