設定 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。Skya 可幫助模擬器以更快且有效率的方式算繪圖像。

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

su
setprop debug.hwui.renderer skiagl
stop
start

設定 VM 加速功能

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

一般規定

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

開發環境需求

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

  • SDK 工具:至少 17 版;26.1.1 或以上版本
  • 採用 x86 架構系統映像檔的 AVD,適用於 Android 2.3.3 (API 級別 10) 或以上版本

虛擬化擴充功能需求

除了開發環境外,電腦的處理方也必須支援下列其中一種虛擬化擴充功能技術:

  • Intel 虛擬化技術 (VT、VT-x、vmx) 擴充功能
  • AMD 虛擬化 (AMD-V、SVM) 擴充功能

大多數現代化處理器都支援這些虛擬化擴充功能。假使您不確定自己的處理器是否支援這些擴充功能,請前往製造商網站查看處理器的規格。假使您的處理器不支援這些擴充功能,則無法使用 VM 加速功能。

限制

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

  • 您無法在其他的 VM 中執行 VM 加速功能模擬器,例如由 VirtualBox、VMWare 或 Docker 代管的 VM。您必須直接在主機電腦上執行 VM 加速功能模擬器。
  • 視作業系統和管理程序而定,在執行 VM 加速功能模擬器時,您無法採用使用其他虛擬化技術的軟體。舉例來說,VirtualBox、VMWare 和 Docker 目前使用的是不同的虛擬化技術,因此,您無法與加速模擬器同時執行這些項目。

管理程序簡介

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
HAXM version 7.3.2 (4) is installed and usable.
accel

macOS:

janedoe-macbookpro:Android janedoe$ ./Sdk/emulator/emulator -accel-check
accel:
0
HAXM version 7.3.2 (4) is installed and usable.
accel

Linux:

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

在 Windows 上設定 VM 加速功能

Windows 上的 VM 加速功能可用於下列三種管理程序:Intel Hardware Accecution Manager (HAXM)、AMD 處理器的 Android Emulator 管理程序驅動程式,或者 Windows 管理程序平台 (WHPX)。

在 Windows 中選擇管理程序

請使用下列條件決定應使用哪個管理程序:

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

停用 Hyper-V 時請仔細檢查

您必須停用 Hyper-V,才能使用 AMD 處理器的 Intel HAXM 或 Android Emulator 管理程序驅動程式。然而,取消勾選 Windows 功能對話方塊中的「Hyper-V」可能無法保證 Hyper-V 已停用。Windows 10 的幾項功能就能默示啟用 Hyper-V 功能。啟用這些功能之一時,使用者甚至可能不知道 Hyper-V 已啟用。

據我們所知,包括虛擬機器平台Windows 管理程序平台Windows 沙箱Core Isolation憑證保護機構。此外,Linux 版本 2 的 Windows 子系統需要虛擬機器平台,也就是它其實需要 Hyper-V。此清單並不詳盡,如果您發現某項目應列於此處,請透過我們的錯誤追蹤器通知我們。

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

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

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

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

  • 採用搭載虛擬化技術 (VT-x)、Intel EM64T (Intel 64) 功能的 Intel 處理器,然後執行停用 (XD) 位元功能
  • 64 位元的 Windows 10、Windows 8 或 Windows 7 (或是 32 位元版本的作業系統,搭載 64 位元處理器)
  • 如要在 Windows 10 或 8 上使用 Intel HAXM,必須在 Windows 功能對話方塊中關閉 Hyper-V。
    注意:安裝特定軟體時可能會重新開啟 Hyper-V。詳情請參閱停用 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。解除安裝 Intel HAXM 前,請關閉目前正在執行的任何 x86 模擬器。

使用 Android Emulator 管理程序驅動程式對 Windows 上的 AMD 處理器設定 VM 加速功能

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

  • 採用安全虛擬機器 (SVM) 技術的 AMD 處理器
  • 64 位元的 Windows 10、Windows 8 或 Windows 7 (不支援 32 位元的 Windows)
  • 如要在 Windows 10 或 8 中使用適用於 AMD 處理器的 Android Emulator 管理程序驅動程式,您必須在 Windows 的功能對話方塊中關閉 Hyper-V。
    注意:安裝特定軟體時可能會重新開啟 Hyper-V。詳情請參閱停用 Hyper-V 一文。

AMD 處理器的 Android Emulator 管理程序驅動程式可透過 Android Studio 4.0 Canary 5 或以上版本中的 SDK 管理工具,或從 GitHub 中進行安裝 (請見以下說明)。如要從 SDK Manager 安裝,請依照下列步驟操作:

  1. 開啟「Tools」>「SDK Manager」
  2. 按一下「SDK Tools」分頁標籤,然後選取「Android Emulator Hypervisor Driver for AMD Processors」
  3. 按一下「OK」,下載並安裝 AMD 處理器的 Android Emulator 管理程序驅動程式。
  4. 安裝完成後,請在命令提示字元視窗中輸入下列指令,確認驅動程式運作正常:

    sc query gvm
    

    您應該會看到下列狀態訊息:

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

    下列錯誤訊息表示 BIOS 中未啟用 SVM,或 Hyper-V 未停用 (請參閱停用 Hyper-V)。

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

您也可以透過 GitHub 下載並安裝適用於 AMD 處理器的 Android Emulator 管理程序驅動程式。解壓縮驅動程式套件後,請在具備管理員權限的命令提示字元中執行「silent_install.bat」。新的安裝作業完成後,系統會輸出下列輸出內容:

升級安裝會產生下列輸出內容,其中包含有關舊版驅動程式解除安裝的訊息:

您可以使用具備管理員權限的命令提示字元,並使用下列指令來解除安裝 AMD 處理器的 Android Emulator 管理程序驅動程式。

   sc stop gvm
   sc delete gvm

注意:請先關閉所有 x86 模擬器,然後再解除安裝 AMD 處理器的 Android Emulator 管理程序驅動程式。

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

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

  • Intel 處理器:支援虛擬化技術 (VT-x)、擴充網頁表格 (EPT) 和未受限制訪客 (UG) 功能。您必須在電腦的 BIOS 設定中啟用 VT-x。
  • AMD 處理器:建議使用 AMD Ryzen 處理器。您必須在電腦的 BIOS 設定中啟用虛擬化或 SVM。
  • Android Studio 3.2 Beta 1 或以上版本 (從 developer.android.com 下載)
  • Android Emulator 27.3.8 或以上版本 (使用 SDK Manager 下載)
  • 搭載 2018 年 4 月更新或以上版本的 Windows 10

如要在 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. 安裝完成後,請重新啟動電腦。

在 macOS 上設定 VM 加速功能

在 Mac OS X v10.10 Yosemite 及以上版本中,Android Emulator 預設會使用內建的管理程序架構,假使管理程序架構無效,即會使用 Intel HAXM 進行初始化。

如要在管理程序架構功能無法使用時在 macOS 上使用 VM 加速功能,您必須安裝 Intel HAXM 核心擴充功能。

如要安裝 Intel HAXM 核心擴充功能,請依照下列步驟操作:

  1. 開啟 SDK Manager
  2. 按一下「SDK Update Sites」分頁標籤,然後選取「Intel HAXM」
  3. 按一下「OK」
  4. 下載完畢後,執行安裝程式。一般來說,您可以在下列位置中找到安裝程式:sdk/extras/intel/Hardware_Accelerated_ExecutionManager/IntelHAXMversion.dmg
  5. 依照畫面上的指示完成安裝程序。
  6. 安裝完成後,請開啟終端機視窗並執行下列指令,確認新的核心擴充功能運作正常:

    kextstat | grep intel
    

    您應該會看到下列擴充功能的狀態訊息,表明核心擴充功能已載入:

    com.intel.kext.intelhaxm
    

詳情請參閱 Intel HAXM 安裝操作說明

您可以再次執行安裝程式,調整 Intel HAXM 核心擴充功能可用的記憶體量。

如要停止使用 Intel HAXM 核心擴充功能,請將其解除安裝。解除安裝前,請先關閉所有執行中的 x86 模擬器,然後在終端機視窗中執行下列指令:

sudo /System/Library/Extensions/intelhaxm.kext/Contents/Resources/uninstall.sh

在 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 指令:

    $ 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