設定 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
有多種管理程序可供選擇。因此您看到的管理程序可能會與本例不同。舉例來說,您可能會在訊息中看到下列其中一個關鍵字: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 的情況下開啟 Hyper-V 管理程序,例如 Windows Defender 提供的「Core Isolation」。在這種情況下,請改用 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,這項架構需使用 macOS v10.10 (Yosemite) 以上版本。

在 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

Windows 上的 VM 加速功能舊設定指南

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

在 Windows (模擬器 32.x.x.x 以下版本) 中選擇管理程序

條件 管理程序
搭載 Intel 處理器,且不需要同時與 Android Emulator 執行 Hyper-V。 使用 Intel HAXM
搭載 AMD 處理器,不需要同時在 Android Emulator 上執行 Hyper-V。 使用 Android Emulator 管理程序驅動程式
搭載 AMD 處理器,需要同時在 Android Emulator 上執行 Hyper-V。 使用 WHPX

在 Windows 上使用 Intel HAXM 設定 VM 加速功能

電腦必須符合下列規定,才能安裝並使用 Intel HAXM:

  • 採用的 Intel 處理器須搭載虛擬化技術 (VT-x)、Intel EM64T (Intel 64) 功能,並啟用執行停用 (XD) 位元功能
  • 64 位元的 Windows 11、Windows 10、Windows 8 或 Windows 7 (或是搭載 64 位元處理器的 32 位元版本作業系統)
  • 在 Windows 11、Windows 10 或 Windows 8,您必須在 Windows 功能對話方塊中關閉 Hyper-V。

如要安裝 Intel HAXM 驅動程式,請依照下列步驟操作:

  1. 開啟 SDK Manager
  2. 按一下「SDK Update Sites」分頁標籤,然後選取「Intel HAXM」
  3. 按一下「OK」
  4. 下載完畢後,執行安裝程式。

    一般來說,您可以在下列位置中找到安裝程式:sdk\extras\intel\Hardware_Accelerated_Execution_Manager\intelhaxm-android.exe

  5. 使用精靈完成安裝作業。

  6. 安裝 Intel HAXM 之後,請使用以下指令列指令,確認虛擬化驅動程式是否正確運作:

    sc query intelhaxm
    

    狀態訊息包含下列資訊:

    SERVICE_NAME: intelhaxm
           ...
           STATE              : 4  RUNNING
           ...
    

詳情請參閱在 Windows 上安裝 Intel HAXM 的操作說明

如要解除安裝 Intel HAXM,請使用安裝程式或 Windows 控制台。解除安裝 Intel HAXM 前,請關閉所有執行中的 x86 模擬器。

停用 Hyper-V 時請仔細檢查

您必須先停用 Hyper-V,才能使用 Android Emulator 管理程序驅動程式或 Intel HAXM。但請注意,在 Windows 功能對話方塊中取消選取「Hyper-V」,並不保證會停用 Hyper-V。

Windows 10 中有不少功能是以隱含形式啟用 Hyper-V。使用者啟用這些功能時,甚至可能不知道 Hyper-V 已啟用。這些功能包括:

  • 虛擬機器平台
  • Windows Hypervisor Platform
  • Windows 沙箱
  • 核心隔離
  • Credential Guard

此外,Linux 版本 2 的 Windows 子系統需要使用虛擬機器平台,也就是它其實需要 Hyper-V。此清單並不詳盡,如果發現項目應列於此處,歡迎回報錯誤通知我們。

停用 Hyper-V 時,請再次確認上述功能是否也已停用。請參閱 Microsoft 說明文件和下列範例,瞭解如何停用各項功能。

部分平台在關閉時無法立即停用 Hyper-V。當此情況發生時,Windows OS 不會傳回錯誤,Hyper-V 在 Windows 功能對話方塊中也會顯示為停用。假使發生這類問題,請透過 Microsoft 的 Issue Tracker 回報錯誤。