如何使用 Android 仿真器启用硬件加速(Hyper-V 和 AEHD)

使用 Visual Studio,可以在没有 Android 设备时,通过模拟器轻松测试和调试适用于 Android 的 .NET MAUI 应用。 但是,如果硬件加速不可用或未启用,仿真器将运行非常缓慢。 可以通过启用硬件加速并使用适用于处理器体系结构的虚拟设备映像来显著提高模拟器的性能。 有关详细信息,请参阅在 developer.android.com 上 为 Android Emulator 配置硬件加速

该模拟器提供通用的网络功能,可用于不同的目的,包括从 Windows 虚拟机(VM)连接到 Mac 上运行的仿真器。 有关详细信息,请参阅 从 Windows 虚拟机内部连接到 Mac 上的 Android 模拟器

在 macOS 上,Android 模拟器使用内置的虚拟机监控程序.Framework。 有关详细信息,请参阅 developer.apple.com 上的 虚拟机监控程序

在 Windows 上加速 Android 模拟器

以下虚拟化技术可用于加速 Windows 上的 Android 仿真器:

  • Windows 虚拟机监控程序平台(WHPX)。 Hyper-V 是 Windows 的虚拟化功能,可用于在物理主计算机上运行虚拟化计算机系统。
  • Android 模拟器虚拟机监控程序驱动程序 (AEHD)。

注释

Intel 硬件加速执行管理器(HAXM)已从仿真器 33.x.x.x 弃用,并且已由 Intel 处理器上的 AEHD 取代。 有关在模拟器 32.x.x.x 和更低版本上使用 HAXM 的信息,请参阅在 developer.android.com 上使用 Windows 上的 Intel HAXM 配置 VM 加速

为获得最佳 Windows 体验,建议使用 WHPX 来加速 Android 仿真器。 如果计算机上的 WHPX 不可用,则可以使用 AEHD。 如果满足以下条件,Android 模拟器会自动使用硬件加速:

  • 硬件加速在开发计算机上可用并启用。
  • 模拟器运行的系统映像是为基于 x86-64x86 的虚拟设备创建的。

重要

如果 VM 中启用了嵌套虚拟化,虚拟机(VM)加速模拟器可以在另一个 VM 中运行,包括Microsoft Dev Box。

Windows ARM 设备限制

Android 模拟器当前需要 x64 处理器体系结构,在 Windows ARM 设备上不受支持。 此限制会影响设备,例如:

  • Surface Pro X
  • Surface Pro 9 (5G/ARM 变体)
  • 具有 ARM64 处理器的其他 Windows 设备(Snapdragon 等)

如果使用 Windows ARM 设备,请考虑以下替代方法:

  • 使用通过 USB 调试连接的物理 Android 设备进行测试。 有关详细信息,请参阅设置 Android 设备进行调试
  • 将基于云的测试服务或远程开发环境与 x64 体系结构配合使用。
  • 如果可用,请考虑使用适用于 Android 的 Windows 子系统(WSA),但与 Android 模拟器相比,这有不同的限制和功能。

有关 Android 模拟器要求的最新信息,请参阅有关 developer.android.com 的 Android 模拟器要求

有关使用 Android 模拟器启动和调试的信息,请参阅 Android 模拟器上的调试

使用 Hyper-V 加速

在启用 Hyper-V 之前,请阅读以下部分以验证计算机是否支持 Hyper-V。

验证对 Hyper-V 的支持

Hyper-V 在 Windows 虚拟机监控程序平台上运行。 若要将 Android 模拟器与 Hyper-V 配合使用,计算机必须满足以下条件才能支持 Windows 虚拟机监控程序平台:

  • 计算机硬件必须满足以下要求:

    • 支持虚拟化技术(VT-x)、扩展页表(EPT)和不受限制的来宾(UG)功能的 Intel 处理器。 必须在计算机的 BIOS 中启用 VT-x。
    • AMD 处理器:建议使用 AMD Ryzen 处理器。 必须在计算机的 BIOS 中启用虚拟化或 SVM。
  • 计算机必须运行 Windows 11 或 Windows 10 版本 1909 或更高版本的企业版、专业版或教育版。

若要验证计算机硬件和软件是否与 Hyper-V 兼容,请打开命令提示符并键入以下命令:

systeminfo

如果列出的所有 Hyper-V 要求都具有 “是”值,则计算机可以支持 Hyper-V。 例如:

检查对 .NET MAUI 的 Hyper-V 支持时,systeminfo 输出的示例。

如果 Hyper-V 结果指示虚拟机监控程序当前正在运行,则 Hyper-V 已启用。

重要

如果 Windows 在虚拟机内部运行,则必须在主机虚拟机监控程序中启用嵌套虚拟化。

在 Windows 中启用 Hyper-V 加速

如果计算机满足上述条件,请使用以下步骤通过 Hyper-V 加速 Android 模拟器:

  1. 在 Windows 搜索框中输入 Windows 功能 ,然后在搜索结果中选择 “打开或关闭 Windows 功能 ”。 在 “Windows 功能 ”对话框中,启用 Hyper-VWindows 虚拟机监控程序平台

    为 .NET MAUI 启用 Hyper-V 和 Windows 虚拟化平台。

    进行这些更改后,请重新启动计算机。

    重要

    在 Windows 10 2018 年 10 月更新(RS5)及更高版本上,只需启用 Hyper-V,因为它将自动使用 Windows 虚拟机监控程序平台(WHPX)。

  2. 请确保在 Android 设备管理器中创建 的虚拟设备是基于 x86-64基于 x86 的系统映像。 如果使用基于 Arm 的系统映像,则虚拟设备不会加速,并且运行缓慢。

启用 Hyper-V 后,你将能够运行加速的 Android 模拟器。

使用 AEHD 加速

如果计算机不支持 Hyper-V,则应使用 AEHD 来加速 Android 模拟器。 在安装和使用 AEHD 之前,请阅读以下部分,验证计算机是否支持 AEHD。

验证对 AEHD 的支持

计算机必须满足以下条件才能支持 AEHD:

  • 具有虚拟化扩展的 Intel 或 AMD 处理器,必须在 BIOS 中启用。
  • 64 位 Windows 11 或 Windows 10。
  • 必须关闭 Hyper-V。

注释

Windows 中的多个功能隐式启用 Hyper-V。 有关详细信息,请参阅在 developer.android.com 上 禁用 Hyper-V 时进行双重检查

在 Windows 中启用 AEHD 加速

如果计算机满足上述条件,请使用以下步骤通过 AEHD 加速 Android 仿真器:

  1. 在 Visual Studio 中,选择“Android Android > SDK 管理器工具>...”菜单项。

  2. “Android SDK 和工具” 窗口中,选择“ 工具 ”选项卡。

  3. “工具”选项卡中,展开 “附加项”,勾选 Android 模拟器虚拟机监控程序驱动程序(安装程序) 项的复选框,然后选择“ 应用更改 ”按钮:

    通过 Visual Studio 中的 Android SDK 管理器安装 AEHD。

    注释

    或者,可以从 GitHub 下载并安装 AEHD。 解压缩驱动程序包后,使用管理员权限在命令行中运行 silent_install.bat

  4. 请确保在 Android 设备管理器中创建 的虚拟设备是基于 x86-64基于 x86 的系统映像。 如果使用基于 Arm 的系统映像,则虚拟设备不会加速,并且运行缓慢。

AEHD 2.1 及更高版本

安装后,使用以下命令确认驱动程序正常运行:

sc query aehd

如果驱动程序正常运行,状态消息将包含以下信息:

SERVICE_NAME: aehd
       ...
       STATE              : 4  RUNNING
       ...

以下错误消息表示未在 BIOS 中启用虚拟化扩展,或者未禁用 Hyper-V:

SERVICE_NAME: aehd
       ...
       STATE              : 1  STOPPED
       WIN32_EXIT_CODE    : 4294967201 (0xffffffa1)
       ...

安装并运行 AEHD 后,你将能够运行加速的 Android 模拟器。

AEHD 2.0 和更低版本

安装后,使用以下命令确认驱动程序正常运行:

sc query gvm

如果驱动程序正常运行,状态消息将包含以下信息:

SERVICE_NAME: gvm
       ...
       STATE              : 4  RUNNING
       ...

以下错误消息表示未在 BIOS 中启用虚拟化扩展,或者未禁用 Hyper-V:

SERVICE_NAME: gvm
       ...
       STATE              : 1  STOPPED
       WIN32_EXIT_CODE    : 4294967201 (0xffffffa1)
       ...

安装并运行 AEHD 后,你将能够运行加速的 Android 模拟器。

卸载 AEHD

若要卸载 AEHD,请在具有管理员权限的命令行中使用以下命令:

  • AEHD 2.1 及更高版本

    sc stop aehd
    sc delete aehd
    
  • AEHD 2.0 和更低版本

    sc stop gvm
    sc delete gvm
    

重要

在卸载适用于 AMD 的 AEHD 之前关闭任何 x86 仿真器。

故障排除

有关排查硬件加速问题的帮助,请参阅 Android 模拟器 故障排除 指南。