硬體加速以提升模擬器效能 (Hyper-V 與 HAXM)

本文說明如何使用您電腦的硬體加速功能將 Android Emulator 提升到最大效能。

Visual Studio 讓開發人員使用 Android Emulator,在 Android 裝置無法使用或不實用的情況下,更容易測試和偵錯其 Xamarin.Android 應用程式。 不過,如果執行 Android 模擬器的電腦上無法使用硬體加速,Android 模擬器的執行速度會很慢。 使用特殊的 x86 虛擬裝置映像,結合電腦的虛擬化功能,可大幅提升 Android Emulator 的效能。

案例 HAXM WHPX Hypervisor.Framework
您有 Intel 處理器 X X X
您有 AMD 處理器 X
您想要支援 Hyper-V X
您想要支援巢狀虛擬化 有限
您想要使用 Docker 之類的技術 (含 WSL2) X X

在 Windows 上加速 Android Emulator

下列虛擬化技術可用於加速 Android Emulator:

  1. Microsoft 的 Hyper-V 與 Windows Hypervisor 平台 (WHPX)Hyper-V 是 Windows 的虛擬化功能,可讓您在實體主機電腦上執行虛擬化的電腦系統。

  2. Intel Hardware Accelerated Execution Manager (HAXM). HAXM 是執行 Intel CPU 所在電腦的虛擬化引擎。

若要在 Windows 中擁有最佳體驗,建議您使用 WHPX 來加速 Android 模擬器。 如果您的電腦上沒有 WHPX,則可以使用 HAXM。 如果符合下列準則,Android Emulator 會自動使用硬體加速:

  • 您的開發電腦有提供並已啟用硬體加速。

  • 模擬器正在執行為 x86 型虛擬裝置建立的系統映像。

重要

您無法在另一個 VM 內執行 VM 加速模擬器,例如 VirtualBox、VMware 或 Docker 所裝載的 VM(除非使用 WSL2)。 您必須直接在系統硬體上執行 Android 模擬器。

如需使用 Android Emulator 啟動和偵錯的資訊,請參閱 Debugging on the Android Emulator (在 Android Emulator 上偵錯)。

使用 Hyper-V 加速

在啟用 Hyper-V 之前,請先閱讀下列章節,確認您的電腦支援 Hyper-V。

確認 Hyper-V 支援

Hyper-V 是在 Windows Hypervisor 平台上執行。 若 Hyper-V 要與 Android Emulator 搭配使用,您的電腦必須符合下列準則,以支援 Windows Hypervisor 平台:

  • 您的電腦硬體必須符合下列需求:

    • 支援第二層位址轉譯 (SLAT) 的 64 位元 Intel 或 AMD Ryzen CPU。
    • CPU 對 VM 監視模式延伸模組的支援 (Intel CPU 上的 VT-c)。
    • 至少 4 GB 的記憶體。
  • 在您電腦的 BIOS 中必須啟用下列項目:

    • 虛擬化技術 (視主機板製造商而定,可能會有不同的標籤)。
    • 硬體強制執行的資料執行防止。
  • 您的電腦必須更新至 Windows 2018 年 4 月 10 日更新 (組建 1803) 或更新版本。 您可以使用下列步驟來確認您的 Windows 是最新版本:

    1. 在 Windows 搜尋方塊中輸入關於

    2. 在搜尋結果中選取 [About your PC] \(電腦相關\)

    3. 向下捲動 [有關] 對話方塊至 [Windows 規格] 區段。

    4. 確認版本至少是 1803:

      Windows specifications

若要確認電腦的軟硬體是否與 Hyper-V 相容,請開啟命令提示字元並鍵入下列命令:

systeminfo

如果所有列出的 Hyper-V 需求值皆為 Yes,則表示您的電腦可支援 Hyper-V。 例如:

Example systeminfo output

啟用 Hyper-V 加速

如果您的電腦符合上述準則,請使用下列步驟,使用 Hyper-V 來加速 Android Emulator:

  1. 在 Windows 搜尋方塊中輸入 Windows 功能,然後在搜尋結果中選取 [開啟或關閉 Windows 功能]。 在 [Windows 功能] 對話方塊中,同時啟用 Hyper-VWindows Hypervisor 平台

    Enabling Hyper-V and Windows Hypervisor Platform

    進行這些變更之後,請重新啟動電腦。

重要

在 Windows 10 2018 年 10 月更新 (RS5) 與更高版本中,您只需要啟用 Hyper-v,原因是其會自動使用 Windows Hypervisor 平台 (WHPX)。

  1. 安裝 Visual Studio 15.8 或更新版本 (這個版本的 Visual Studio 提供 IDE 支援,可搭配 Hyper-V 執行 Android Emulator)。

  2. 安裝 Android Emulator 套件 27.2.7 或更新版本。 若要安裝此套件,請流覽至 Visual Studio 中的 [工具 > Android > Android SDK 管理員 ]。 選取 [工具] 索引標籤,確定 Android Emulator 的版本至少為 27.2.7。 另請確定 Android SDK Tools 的版本為 26.1.1 或更新版本:

    Android SDKs and Tools dialog

當您建立虛擬裝置時 (請參閱使用 Android Device Manager 管理虛擬裝置),請務必選取 x86 型系統映像。 如果您使用 ARM 型系統映像,則虛擬裝置不會加速,且執行速度會變慢。

Hyper-V 現在應該已啟用,而且您可以執行加速的 Android 模擬器。

使用 HAXM 加速

如果您的電腦不支援 Hyper-V,您可以使用 HAXM 來加速 Android 模擬器。 如果您想要使用 HAXM,您必須停用 Device Guard

確認 HAXM 支援

若要判斷您的硬體是否支援 HAXM,請遵循 Does My Processor Support Intel Virtualization Technology? (我的處理器是否支援 Intel 虛擬化技術?) 中的步驟。 如果您的硬體支援 HAXM,您可以使用下列步驟來查看是否已安裝 HAXM:

  1. 開啟命令提示字元視窗,然後輸入下列命令:

    sc query intelhaxm
    
  2. 檢查輸出,查看 HAXM 處理序是否正在執行中。 如果是,您應該會看到將 intelhaxm 狀態列為 RUNNING 的輸出。 例如:

    Output from sc query command when HAXM is available

    如果 STATE 未設為 RUNNING,則表示未安裝 HAXM。

如果您的電腦可支援 HAXM,但卻未安裝 HAXM,請使用下一節中的步驟來安裝 HAXM。

安裝 HAXM

WINDOWS 的 HAXM 安裝套件可從 Intel 硬體加速執行管理員 GitHub 版本頁面取得。 使用下列步驟來下載並安裝 HAXM:

  1. 從 Intel 網站,下載適用於 Windows 的最新 HAXM 虛擬化引擎 \(英文\) 安裝程式。 直接從 Intel 網站下載 HAXM 安裝程式的優點,在於可確保您使用的是最新版本。

  2. 執行 haxm-N.N.N-setup.exe (其中 N.N.N 是版本號碼) 啟動 HAXM 安裝程式。 接受安裝程式對話方塊中的預設值:

    Intel Hardware Accelerated Execution Manager Setup window

當您建立虛擬裝置時 (請參閱使用 Android Device Manager 管理虛擬裝置),請務必選取 x86 型系統映像。 如果您使用 ARM 型系統映像,則虛擬裝置不會加速,且執行速度會變慢。

疑難排解

如需針對硬體加速問題進行疑難排解的說明,請參閱 Android Emulator 的疑難排解指南。

在 macOS 上加速 Android Emulator

下列虛擬化技術可用於加速 Android Emulator:

  1. Apple 的 Hypervisor 架構Hypervisor 是讓您能夠在 Mac 上執行虛擬機器的 macOS 10.10 和更新版本功能。

  2. Intel Hardware Accelerated Execution Manager (HAXM). HAXM 是執行 Intel CPU 所在電腦的虛擬化引擎。

建議您使用 Hypervisor 架構來加速 Android 模擬器。 如果 Hypervisor 架構不適用於您的 Mac,則可以使用 HAXM。 如果符合下列準則,Android Emulator 會自動使用硬體加速:

  • 開發電腦上有硬體加速可用,並已啓用。

  • 模擬器正在執行為 x86 型虛擬裝置建立的系統映像。

重要

您無法在另一個 VM 內執行 VM 加速模擬器,例如 VirtualBox、VMware 或 Docker 所裝載的 VM。 您必須直接在系統硬體上執行 Android 模擬器。

如需使用 Android Emulator 啟動和偵錯的資訊,請參閱 Debugging on the Android Emulator (在 Android Emulator 上偵錯)。

使用 Hypervisor 架構加速

若要搭配 Hypervisor 架構使用 Android Emulator,您的 Mac 必須符合下列準則:

  • 您的 Mac 必須執行 macOS 10.10 或更新版本。

  • 您的 Mac CPU 必須能夠支援 Hypervisor 架構。

如果您的 Mac 符合這些準則,Android 模擬器即會自動使用 Hypervisor 架構來加速。 如果您不確定 Mac 是否支援 Hypervisor 架構,請參閱疑難排解指南,以取得確認您的 Mac 是否支援 Hypervisor 的方法。

如果您的 Mac 不支援 Hypervisor 架構,您可以使用 HAXM 來加速 Android Emulator (如下所述)。

使用 HAXM 加速

如果您的 Mac 不支援 Hypervisor 架構 (或使用 macOS 10.10 以前的版本),您可以使用 Intel 的 Hardware Accelerated Execution Manager (HAXM) 來加速 Android Emulator。

在您第一次搭配 HAXM 使用 Android Emulator 前,最好先確認已安裝 HAXM 並可供 Android Emulator 使用。

確認 HAXM 支援

您可以使用下列步驟來查看是否已安裝 HAXM:

  1. 開啟終端機,並輸入下列命令:

    ~/Library/Developer/Xamarin/android-sdk-macosx/tools/emulator -accel-check
    

    此命令假設 Android SDK 安裝在 ~/Library/Developer/Xamarin/android-sdk-macosx 的預設位置;如果不是,請將以上路徑修改為 Mac 上的 Android SDK 位置。

  2. 如果已安裝 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。

安裝 HAXM

適用於 macOS 的 HAXM 安裝套件可從 Intel Hardware Accelerated Execution Manager 頁面取得。 使用下列步驟來下載並安裝 HAXM:

  1. 從 Intel 網站,下載適用於 macOS 的最新 HAXM 虛擬化引擎 \(英文\) 安裝程式。

  2. 執行 HAXM 安裝程式。 接受安裝程式對話方塊中的預設值:

    Intel Hardware Accelerated Execution Manager Setup window

疑難排解

如需針對硬體加速問題進行疑難排解的說明,請參閱 Android Emulator 的疑難排解指南。