設定 Android Emulator 的硬體加速功能

如果模擬器可以使用電腦的硬體 (例如 CPU、GPU 和數據機),而不是以純軟體的形式執行,就能達到最佳效能。使用電腦硬體提升效能的功能稱為「硬體加速」

模擬器可利用硬體加速功能,透過以下兩種主要方式提升使用體驗:

  • 提升螢幕算繪的圖形加速功能
  • 加快執行速度的虛擬機器 (VM) 加速功能

大多數電腦會依預設啟用硬體加速功能。如果您的電腦未啟用這項功能,請參考本頁說明,瞭解如何設定圖形和虛擬機器 (VM) 加速功能,提升模擬器的效能。

設定圖形加速功能

圖形加速功能會使用電腦硬體 (通常是 GPU) 加快螢幕算繪速度。Android 裝置會使用 OpenGL 嵌入系統 (OpenGL ES 或 GLES),算繪螢幕上的 2D 和 3D 圖形。

在 AVD Manager 中建立 Android 虛擬裝置 (AVD) 時,可以指定模擬器要使用硬體或軟體來模擬 AVD 的 GPU。我們建議使用硬體加速功能,速度通常較快。然而,假使電腦使用的是與模擬器不相容的圖形驅動程式,您可能必須使用軟體加速功能。

根據預設,模擬器會基於您的電腦設定判斷是否要使用硬體或軟體圖形加速功能。假使您的 GPU 硬體和驅動程式相容,模擬器會使用 GPU。否則,模擬器會使用軟體加速功能 (使用電腦的 CPU) 來模擬 GPU 處理作業。

假使您是透過指令列啟動模擬器,可以覆寫該虛擬裝置執行個體中 AVD 的圖形加速功能設定。

需求條件

如要使用圖形加速功能,開發環境必須符合下列需求:

  • SDK 工具:建議使用最新版本 (最低為第 17 版)
  • SDK 平台:建議使用最新版本 (最低為 Android 4.0.3,修訂版本 3)

在 AVD Manager 中設定圖形加速功能

如要設定 AVD 的圖形加速功能,請依照下列步驟操作:

  1. 開啟 AVD Manager
  2. 建立新的 AVD編輯現有的 AVD
  3. 在「Verify Configuration」視窗中找到「Emulated Performance」部分。
  4. 選取「Graphics:」選項的值。
  5. 按一下「Finish」

透過指令列設定圖形加速功能

如要在透過指令列執行 AVD 時指定圖像加速功能類型,請加入 -gpu 選項,如下列範例所示:

emulator -avd avd_name -gpu mode [{-option [value]} ... ]

mode 的值可設為下列其中一個選項:

  • auto:讓模擬器根據電腦的設定,選擇硬體或軟體圖形加速功能。
  • host:請使用電腦上的 GPU 進行硬體加速功能。這個選項通常為模擬器提供最高的圖像品質和效能。然而,如果顯示卡驅動程式在算繪 OpenGL 時發生問題,您可能需要使用 swiftshader_indirectangle_indirect 選項。
  • swiftshader_indirect:使用 SwiftShader 的 Quick Boot 相容變化版本,透過軟體加速功能算繪圖形。如果電腦無法使用硬體加速功能,建議改用 host 模式。
  • angle_indirect:(僅限 Windows) 使用 ANGLE Direct3D 的 Quick Boot 相容變化版本,透過軟體加速功能算繪圖形。如果電腦無法使用硬體加速功能,建議改用 host 模式。在大多數情況下,ANGLE 的效能會與使用 host 模式相似,因為 ANGLE 使用的是 Microsoft DirectX,而非 OpenGL。

    在 Windows 上,Microsoft DirectX 驅動程式的問題比 OpenGL 驅動程式少。這個選項使用 Direct3D 11,需要搭配 Windows 7 平台更新的 Windows 10、Windows 8.1 或 Windows 7 SP1。

  • guest:使用訪客端軟體算繪功能。這個選項提供模擬器最低的圖像品質和效能。

下列 mode 選項已淘汰:

  • swiftshader:已於版本 27.0.2 淘汰。請改用 swiftshader_indirect
  • angle:已於版本 27.0.2 淘汰。請改用 angle_indirect (僅限 Windows)。
  • mesa:已於版本 25.3 淘汰。改用 swiftshader_indirect

啟用 Android UI 的 Skia 算繪功能

使用 API 級別 27 或以上的映像檔時,模擬器可以透過 Skia 算繪 Android UI。Skia 可幫助模擬器以更順暢有效率的方式算繪圖形。

如要啟用 Skia 算繪功能,請在 adb 殼層中使用下列指令:

su
setprop debug.hwui.renderer skiagl
stop
start

設定 VM 加速功能

VM 加速功能會使用電腦的處理器,大幅提升模擬器的執行速度。名為「管理程序」的工具會透過電腦處理器提供的虛擬化擴充功能,管理這種互動。本節概述使用 VM 加速功能的需求條件,並說明如何在每個作業系統上設定 VM 加速功能。

一般規定

如要搭配模擬器使用 VM 加速功能,您的電腦必須符合本節的一般需求條件。您的電腦也必須符合作業系統的其他需求。

開發環境需求

如要使用 VM 加速功能,開發環境必須符合下列需求:

  • SDK 工具:最低版本為 17,建議使用 26.1.1 以上版本
  • AVD:下表說明所需的 Android 版本。

    CPU 架構 系統映像檔需求
    X86_64 x86 或 x86_64 系統映像檔,適用於 Android 2.3.3 (API 級別 10) 以上版本
    ARM64 arm64-v8a 系統映像檔,適用於 Android 5.0 (API 級別 21) 以上版本

虛擬化擴充功能需求

除了開發環境需求外,電腦處理器也必須支援虛擬化擴充功能。支援的處理器包括:

  • 搭載 Intel 虛擬化技術 (VT-x、vmx) 的 Intel 處理器,例如 Intel Core iX 和 Intel Core Ultra 處理器
  • 搭載 AMD-V (SVM) 的 AMD 處理器,例如 AMD Ryzen 處理器
  • Apple 晶片

Intel 和 AMD 處理器的其他需求:

Intel 和 AMD 處理器需要進行第二層位址轉譯 (Intel EPT 或 AMD RVI)。新型的 Intel 和 AMD 處理器大多都支援第二層位址轉譯。只有第一代 Intel 或 AMD 處理器可能不支援第二層頁面轉譯,但提供虛擬化擴充功能。

如果不確定處理器是否支援所需的擴充功能,請前往製造商網站查看處理器規格。假使處理器不支援這些擴充功能,就無法使用 VM 加速功能。

限制

VM 加速功能會受到下列限制:

  • 您無法在其他的 VM 中執行 VM 加速功能模擬器,例如由 VirtualBox、VMWare 或 Docker 代管的 VM。您必須直接在主機電腦上執行 VM 加速功能模擬器。
  • 視作業系統和管理程序而定,在執行 VM 加速功能模擬器時,您可能無法執行採用其他虛擬化技術的軟體。這類軟體包括但不限於虛擬機器解決方案、特定防毒程式,以及一些防作弊解決方案。但請放心,上述情況主要發生在關閉 Hyper-V 的 Windows 上,這類軟體大多可以與 Android 模擬器並存,不會造成任何問題。但如果發生衝突,則建議不要同時執行 VM 加速功能模擬器和這類軟體。

管理程序簡介

VM 加速功能需要使用「管理程序」,這項工具會使用電腦處理器提供的虛擬化擴充功能。

如果沒有管理程序和 VM 加速功能,模擬器就必須逐一翻譯每個區塊的 VM 機器碼,才能符合主機電腦的架構。整個程序可能相當慢。如果採用管理程序,當 VM 和主機電腦架構相符時,模擬器就可以透過管理程序直接在主機處理器上執行程式碼。這項改善措施會大幅提升模擬器的速度和效能。

運作效果最佳的電腦管理程序取決於電腦的作業系統和設定。詳情請參閱下列各節的說明:

檢查是否已安裝管理程序

您可以使用模擬器 -accel-check 指令列選項,檢查電腦目前是否已安裝管理程序。

下列範例說明如何使用模擬器 accel-check 選項。在每個範例中,Sdk 是 Android SDK 的位置:

Windows:

c:\Users\janedoe\AppData\Local\Android> Sdk\emulator\emulator -accel-check
accel:
0
AEHD (version 2.2) is installed and usable.
accel
敬上 Windows 有多種管理程序可供選擇,因此您看到的管理程序可能會與本例不同。舉例來說,您可能會看到 訊息中的關鍵字:GVM(AEHD 的前稱)、WHPX

macOS:

janedoe-macbookpro:Android janedoe$ ./Sdk/emulator/emulator -accel-check
accel:
0
Hypervisor.Framework OS X Version 13.2
accel

Linux:

janedoe:~/Android$ ./Sdk/emulator/emulator -accel-check
accel:
0
KVM (version 12) is installed and usable.

在 Windows 上設定 VM 加速功能

Windows 上的 VM 加速功能可使用以下兩種管理程序之一:

  • Windows Hypervisor Platform (WHPX)
  • Android Emulator 管理程序驅動程式 (AEHD)

在 Windows 中選擇管理程序

判斷要使用哪一個管理程序時,您可以參考本節列出的條件。以下各節也會說明使用各項管理程序設定 VM 加速功能的流程。

條件 管理程序
需要同時執行 Hyper-V 和 Android Emulator。 使用 WHPX
不需要同時執行 Hyper-V 和 Android Emulator。 使用 Android Emulator 管理程序驅動程式

使用 Windows 管理程序平台設定 VM 加速功能

電腦必須符合下列要求,才能啟用 WHPX:

如要在 Windows 上安裝 WHPX,請依照下列步驟操作:

  1. 在 Windows 桌面的 Windows 圖示上按一下滑鼠右鍵,然後選取「Apps and features」
  2. 在「Related Settings」下,按一下「Programs and Features」
  3. 按一下「Turns Windows Features On or Off」
  4. 選取「Windows Hypervisor Platform」

  5. 按一下「OK」

  6. 安裝完成後,請重新啟動電腦。

在 Windows 上使用 Android Emulator 管理程序驅動程式 (AEHD) 設定 VM 加速功能

電腦必須符合下列需求,才能安裝及使用 Android Emulator 管理程序驅動程式:

  • 採用具備虛擬化擴充功能的 Intel 或 AMD 處理器。
  • 64 位元的 Windows 11 或 Windows 10 (32 位元 Windows 裝置不支援 支援)

    Windows 8.1、Windows 8 和 Windows 7 使用者可以繼續使用 AEHD 1.7 或更低的級別但無法針對這類情況提供支援服務。

  • 您必須在「Windows 功能」對話方塊中停用 Hyper-V。

    特定視窗元件可在沒有方法的情況下開啟 Hyper-V 管理程序 在 Windows 功能對話方塊中啟用 Hyper-V,例如核心隔離 使用 Kubernetes Engine 建立 Kubernetes 叢集在這種情況下,請使用 WHPX

在 AMD 處理器上,您可以透過 Android Studio 4.0 Canary 5 以上版本中的 SDK Manager,安裝 Android Emulator 管理程序驅動程式。

在 Intel 處理器上,則可透過 Android Studio Flamingo 以上版本中的 SDK Manager,安裝 Android Emulator 管理程序驅動程式。

如要從 SDK Manager 安裝,請按照下列步驟操作:

  1. 依序選取「Tools」>「SDK Manager」。
  2. 按一下「SDK Tools」分頁標籤,然後選取「Android Emulator hypervisor driver」
  3. 按一下「OK」,下載並安裝 Android Emulator 管理程序驅動程式。
  4. 安裝完成後,請使用以下指令列指令,確認驅動程式運作正常:

    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 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)
           ...
    

您也可以透過 GitHub 下載並安裝 Android Emulator 管理程序驅動程式。將驅動程式套件解除封裝後,請以管理員權限在指令列中執行 silent_install.bat

以管理員權限在指令列中執行下列指令,即可解除安裝 Android Emulator 管理程序驅動程式:

AEHD 2.1 以上版本

   sc stop aehd
   sc delete aehd

AEHD 2.0 以下版本

   sc stop gvm
   sc delete gvm

在 macOS 上設定 VM 加速功能

在 macOS 上,Android Emulator 會使用 Hypervisor.Framework、 此 SDK 需要 macOS v10.10 (Yosemite) 以上版本。不過,Android Studio 而 macOS 可能需要更高的版本在這種情況下,請按照 Android Studio 系統需求。

在 Linux 上設定 VM 加速功能

Linux 系統可透過 KVM 軟體套件支援 VM 加速功能。請按照操作說明在 Linux 系統上安裝 KVM,並確認 KVM 已啟用。如果是 Ubuntu 系統,請參閱安裝 Ubuntu KVM 的相關說明。

需求條件

執行 KVM 需要特定的使用者授權。請確認您具備 KVM 安裝操作說明中指定的充分權限。

如要在 Linux 上使用 VM 加速功能,您的電腦也必須符合下列條件:

  • 適用於 Intel 處理器:支援虛擬化技術 (VT-x)、Intel EM64T (Intel 64) 功能,以及已啟用執行停用 (XD) 位元功能。
  • AMD 處理器:支援 AMD 虛擬化 (AMD-V)。

查看 Linux 目前是否已安裝 KVM

模擬器 -accel-check 指令列選項可讓您檢查是否已安裝 KVM。您也可以安裝包含 kvm-ok 指令的 cpu-checker 套件。

下列範例說明如何使用 kvm-ok 指令:

  1. 安裝 cpu-checker 套件:

    sudo apt-get install cpu-checker
    egrep -c '(vmx|svm)' /proc/cpuinfo
    

    1 或以上的輸出內容表示已支援虛擬化。輸出為 0 表示 CPU 不支援硬體虛擬化。

  2. 執行 kvm-ok 指令:

    sudo kvm-ok
    

    預期的輸出內容:

    INFO: /dev/kvm exists
    KVM acceleration can be used
    

    如果出現以下錯誤訊息,表示您還可以執行虛擬機器。但沒有 KVM 擴充功能的話,虛擬機器的速度會較慢。

    INFO: Your CPU does not support KVM extensions
    KVM acceleration can NOT be used
    

在 Linux 上安裝 KVM

使用下列指令安裝 KVM:

Cosmic (18.10) 以上版本:

sudo apt-get install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils

Lucid (10.04) 以上版本:

sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils

Karmic (9.10) 以下版本:

sudo aptitude install kvm libvirt-bin ubuntu-vm-builder bridge-utils

Intel HAXM 解除安裝指南

由於 Intel 停止開發 HAXM,此管理器已從模擬器 33.x.x.x 版開始淘汰。Intel 處理器上的 Intel HAXM 會替換為 Android Emulator 管理程序驅動程式 (AEHD)。

建議將 Intel HAXM 從 Windows 系統完全移除。 除非您安裝了其他依附於 HAXM 的軟體 保持 Intel HAXM 並自行管理。

如要解除安裝 Intel HAXM,請按照下列步驟操作:

檢查是否已安裝 Intel HAXM

如要判斷您的 Windows 系統是否已安裝 Intel HAXM,請開啟 Windows 指令主控台,然後執行下列指令:

   sc query intelhaxm

如果 Intel HAXM 已安裝並執行,您應該會看到以下訊息 。

如果 Intel HAXM 已安裝但已停用,您應該會看到以下訊息 。

無論是在執行還是停用的情況下,Intel HAXM 都會 已安裝。如要繼續解除安裝 Intel,請前往下一步 HAXM。

若未安裝 Intel HAXM,您應該會看到以下訊息。

使用 Android Studio 中的 SDK Manager 解除安裝 Intel HAXM

在 Android Studio 中開啟 SDK Manager,前往「SDK Tools」Tab 鍵 前往「Intel x86 Emulator 加速器 (HAXM 安裝程式) - 已淘汰」 互動畫面應如下所示。

清除核取方塊,如以下螢幕截圖所示。

按一下「套用」按鈕和以下對話方塊應會彈出。

成功解除安裝 Intel HAXM 時,您應該會看到下列內容。 解除安裝程序已完成,按這裡即可停止安裝。

如果發生錯誤,請繼續進行下一步

使用 Windows「設定」解除安裝 Intel HAXM。

開啟 Windows「設定」然後前往 [應用程式]已安裝的應用程式」訊息。

找出「Intel Hardware Accelerated Execution Manager」並在上面按一下 「解除安裝」,如下方螢幕截圖所示。

Intel HAXM 解除安裝程式應會執行並回報結果。如果 解除安裝成功,請參閱刪除 Intel HAXM 安裝程式套件。 否則,請繼續前往下一步

使用指令列解除安裝

  1. 執行「sc stop intelhaxm」,停止 Intel HAXM 服務。您應該會看到 下方的輸出內容中。

  2. 執行「sc delete intelhaxm」,刪除 Intel HAXM 服務。您應該會看到 下列輸出內容

  3. 前往「刪除 Intel HAXM 安裝程式套件」。

刪除 Intel HAXM 安裝程式套件。

只有在透過 Windows「設定」解除安裝 Intel HAXM 時,才需要執行這個步驟 或指令列如未執行這個步驟,Android Studio 的 SDK Manager 可能會 繼續將 Intel HAXM 列為「已安裝」。

安裝程式套件位於 <您的 Android SDK 資料夾>\extras\intel。 Android SDK 的預設安裝位置為:「C:\Users\<您的 Windows 使用者 ID」 >\AppData\Local\Android\Sdk」。請見下方螢幕截圖中的範例。