通过硬件加速提高仿真器性能 (Hyper-V & HAXM)
本文介绍了如何使用计算机的硬件加速功能最大限度提高 Android Emulator 的性能。
Visual Studio 便于开发人员在无法使用 Android 设备的情况下通过使用 Android Emulator 来测试和调试 Xamarin.Android 应用程序。 但是,如果硬件加速在运行 Android 仿真器的计算机上不可用,那么它的运行速度太慢。 通过将特殊的 x86 虚拟设备映像与计算机的虚拟化功能结合使用,可以极大地提高 Android Emulator 的性能。
场景 | HAXM | WHPX | Hypervisor.Framework |
---|---|---|---|
有 Intel 处理器 | X | X | X |
有 AMD 处理器 | X | ||
想支持 Hyper-V | X | ||
想支持嵌套虚拟化 | 受限 | ||
想使用 Docker 等技术 | (使用 WSL2) | X | X |
以下虚拟化技术可用于加速 Android Emulator:
Microsoft 的 Hyper-V 和 Windows 虚拟机监控程序平台 (WHPX)。 Hyper-V 是 Windows 的虚拟化功能,使虚拟的计算机系统可以在物理主计算机上运行。
Intel 硬件加速执行管理器 (HAXM)。 HAXM 是运行 Intel CPU 的计算机所用的虚拟化引擎。
为了在 Windows 上获得最佳体验,建议使用 WHPX 来加速 Android Emulator。 如果计算机没有 Hyper-V,则可使用 HAXM。 如果满足以下条件,Android Emulator 将自动使用硬件加速:
硬件加速在开发计算机上可用并已启用。
仿真器正在运行为基于 x86 的虚拟设备创建的系统映像。
重要
不可在另一 VM(例如由 VirtualBox、VMware 或 Docker 托管的 VM)内运行经过 VM 加速的模拟器(除非使用 WSL2)。 必须直接在系统硬件上运行 Android Emulator 。
有关使用 Android Emulator 进行启动和调试的信息,请参阅 Android Emulator 调试。
在启用 Hyper-V 之前,请阅读以下部分以验证你的计算机是否支持 Hyper-V。
Hyper-V 在 Windows 虚拟机监控程序平台上运行。 若要将 Android Emulator 与 Hyper-V 配合使用,计算机必须满足以下条件才能支持 Windows 虚拟机监控程序平台:
计算机硬件必须满足以下要求:
- 支持二级地址转换 (SLAT) 的 64 位 Intel 或 AMD Ryzen CPU。
- CPU 支持 VM 监视器模式扩展(Intel CPU 上的 VT-c)。
- 内存至少为 4 GB。
在计算机的 BIOS 中,必须启用以下项:
- 虚拟化技术(标签可能因母板制造商而不同)。
- 硬件强制执行数据执行保护。
计算机必须更新到 Windows 10 2018 年 4 月更新(版本 1803)或更高版本。 可使用以下步骤验证 Windows 版本是否为最新版本:
要验证计算机硬件和软件是否与 Hyper-V 兼容,请打开命令提示符并键入以下命令:
systeminfo
如果列出的所有 Hyper-V 要求的值均为“是”,则计算机可以支持 Hyper-V。 例如:
若计算机符合上述条件,请执行以下步骤使用 Hyper-V 加速 Android Emulator:
在 Windows 搜索框中输入“Windows 功能”,然后在搜索结果中选择“打开或关闭 Windows 功能”。 在“Windows 功能”对话框中,启用“Hyper-V”和“Windows 虚拟机监控程序平台”:
进行这些更改后,重新启动计算机。
重要
在 Windows 10 2018 年 10 月更新(RS5) 及更高版本中,你只需启用 Hyper-V 即可,因为它将自动使用 Windows 虚拟机监控程序平台 (WHPX)。
安装 Visual Studio 15.8 或更高版本(此版本 Visual Studio 通过 Hyper-V 提供用于运行 Android Emulator 的 IDE 支持)。
安装 Android Emulator 包 27.2.7 或更高版本。 若要安装此包,请在 Visual Studio 中导航到“工具”>“Android”>“Android SDK 管理器”。 选择“工具”选项卡,确保 Android Emulator 版本至少为 27.2.7。 另请确保 Android SDK Tools 版本为 26.1.1 或更高版本:
创建虚拟设备时(参阅使用 Android Device Manager 管理虚拟设备),请确保选择基于 x86 的系统映像。 如果使用基于 ARM 的系统映像,虚拟设备将无法加速并且运行缓慢。
现在应启用 Hyper-V,以便可以运行加速的 Android Emulator。
如果计算机不支持 Hyper-V,你可以使用 HAXM 加速 Android Emulator。 若要使用 HAXM,必须禁用 Device Guard。
要确定硬件是否支持 HAXM,请按照我的处理器是否支持 Intel 虚拟化技术?中的步骤操作。 若硬件支持 HAXM,可以使用以下步骤检查是否已安装 HAXM:
打开命令提示符窗口,然后输入以下命令:
sc query intelhaxm
检查输出,查看 HAXM 进程是否正在运行。 如果它正在运行,你会看到将
intelhaxm
状态列为RUNNING
的输出。 例如:如果未将
STATE
设置为RUNNING
,则未安装 HAXM。
如果计算机可以支持 HAXM 但未安装 HAXM,请按照下一部分中的步骤安装 HAXM。
可以从 Intel 硬件加速执行管理器 GitHub 发布页获取适用于 Windows 的 HAXM 安装包。 若要下载并安装 HAXM,请按照下列步骤操作:
从 Intel 网站下载适用于 Windows 的最新 HAXM 虚拟化引擎安装程序。 直接从 Intel 网站下载 HAXM 安装程序的优点是可以确保使用最新版本。
运行 haxm-N.N.N-setup.exe(其中 N.N.N 是版本号),启动 HAXM 安装程序。 接受安装程序对话框中的默认值:
创建虚拟设备时(参阅使用 Android Device Manager 管理虚拟设备),请确保选择基于 x86 的系统映像。 如果使用基于 ARM 的系统映像,虚拟设备将无法加速并且运行缓慢。
有关解决硬件加速问题的帮助,请参阅 Android Emulator 疑难解答指南。
以下虚拟化技术可用于加速 Android Emulator:
Apple 的虚拟机监控程序框架。 虚拟机监控程序是 macOS 10.10 及更高版本的一项功能,可在 Mac 上运行虚拟机。
Intel 硬件加速执行管理器 (HAXM)。 HAXM 是运行 Intel CPU 的计算机所用的虚拟化引擎。
建议使用虚拟机监控程序框架来加速 Android 仿真器。 如果 Mac 上没有虚拟机监控程序框架,则可以使用 HAXM。 如果满足以下条件,Android Emulator 将自动使用硬件加速:
硬件加速在开发计算机上可用并已启用。
仿真器正在运行为基于 x86 的虚拟设备创建的系统映像。
重要
不可在另一 VM(例如由 VirtualBox、VMware 或 Docker 托管的 VM)内运行经过 VM 加速的模拟器。 必须直接在系统硬件上运行 Android Emulator 。
有关使用 Android Emulator 进行启动和调试的信息,请参阅 Android Emulator 调试。
要将 Android Emulator 与虚拟机监控程序框架配合使用,Mac 必须符合以下条件:
Mac 必须运行 macOS 10.10 或更高版本。
Mac 的 CPU 必须能够支持虚拟机监控程序框架。
如果你的 Mac 符合这些条件,Android 仿真器将自动使用虚拟机监控程序框架进行加速。 若不确定 Mac 是否支持虚拟机监控程序框架,请参阅疑难解答指南,了解验证 Mac 是否支持虚拟机监控程序的方法。
如果 Mac 不支持虚拟机监控程序框架,可以使用 HAXM 加速 Android Emulator(如下所述)。
若你的 Mac 不支持虚拟机监控程序框架(或者 macOS 版本低于 10.10),则可使用“Intel 的硬件加速执行管理器”(HAXM) 来加速 Android Emulator。
在首次将 HAXM 与 Android Emulator 配合使用之前,最好先验证 HAXM 是否已安装并可供 Android Emulator 使用。
可使用以下步骤检查是否已安装 HAXM:
打开终端,然后输入以下命令:
~/Library/Developer/Xamarin/android-sdk-macosx/tools/emulator -accel-check
此命令假定将 Android SDK 安装在默认位置“~/Library/Developer/Xamarin/android-sdk-macosx”;否则,请在 Mac 上修改 Android SDK 位置的路径。
若已安装 HAXM,则上面的命令将返回类似于以下结果的消息:
HAXM version 7.2.0 (3) is installed and usable.
若 HAXM 未安装,则返回类似于以下输出的消息:
HAXM is not installed on this machine (/dev/HAX is missing).
如果未安装 HAXM,请按照下一部分的步骤安装 HAXM。
可以从 Intel 硬件加速执行管理器页获取适用于 macOS 的 HAXM 安装包。 若要下载并安装 HAXM,请按照下列步骤操作:
从 Intel 网站下载适用于 macOS 的最新 HAXM 虚拟化引擎安装程序。
运行 HAXM 安装程序。 接受安装程序对话框中的默认值:
有关解决硬件加速问题的帮助,请参阅 Android Emulator 疑难解答指南。