Skonfiguruj akcelerację sprzętową emulatora Androida

Emulator działa najlepiej, gdy może korzystać ze sprzętu komputera, takiego jak procesor, GPU i modem, zamiast działać jako czyste oprogramowanie. Możliwość wykorzystania sprzętu komputera do zwiększenia wydajności nazywa się akceleracją sprzętową.

Emulator może korzystać z akceleracji sprzętowej, aby zwiększyć wygodę użytkowania na 2 główne sposoby:

  • Akceleracja graficzna zapewniająca lepsze renderowanie ekranu
  • Akceleracja maszyny wirtualnej (VM) w celu zwiększenia szybkości wykonywania.

Akceleracja sprzętowa jest domyślnie włączona na większości urządzeń. Jeśli nie jest ona włączona na Twoim komputerze, na tej stronie dowiesz się, jak skonfigurować akcelerację grafiki i maszyny wirtualnej, aby uzyskać wyższą wydajność emulatora.

Konfigurowanie akceleracji graficznej

Urządzenia z Androidem używają interfejsów API OpenGL for Embedded Systems (OpenGL ES lub GLES) i Vulkan do renderowania grafiki na ekranie. Akceleracja grafiki umożliwia korzystanie ze sprzętu komputera (zwykle GPU) w celu przyspieszenia renderowania. Chociaż akceleracja sprzętowa jest zalecana ze względu na wydajność, może być konieczne użycie trybu oprogramowania, jeśli komputer nie jest zgodny ze względu na obsługę sterowników karty graficznej lub brak wymagań dotyczących obrazu systemu.

Gdy tworzysz urządzenie wirtualne z Androidem (AVD) w menedżerze AVD, możesz określić, czy emulator ma używać renderowania sprzętowego czy programowego. W trybie automatycznym emulator decyduje, czy używać sprzętowej czy programowej akceleracji grafiki, na podstawie komputera. Możesz też zastąpić to ustawienie, jeśli uruchomisz emulator z poziomu wiersza poleceń.

Konfigurowanie akceleracji graficznej w narzędziu AVD Manager

Aby skonfigurować akcelerację grafiki na urządzeniu AVD, wykonaj te czynności:

  1. Otwórz Menedżera urządzeń.
  2. Utwórz nowe urządzenie AVD lub edytuj istniejące.
  3. W oknie Konfiguracja znajdź sekcję Emulowana wydajność na karcie Ustawienia dodatkowe.
  4. Wybierz wartość opcji Akceleracja grafiki.
  5. Kliknij Zakończ.

Konfigurowanie akceleracji grafiki z poziomu wiersza poleceń

Aby określić typ akceleracji grafiki podczas uruchamiania AVD z wiersza poleceń, dodaj opcję -gpu, jak w tym przykładzie:

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

Wartość mode można ustawić na jedną z tych opcji:

  • auto: emulator wybiera akcelerację sprzętową lub programową na podstawie AVD, konfiguracji komputera i wskaźników jakości. Jest to zalecany tryb dla większości użytkowników.
  • host: używaj GPU na komputerze do akceleracji sprzętowej. Ta opcja zwykle zapewnia najwyższą jakość grafiki i wydajność emulatora oraz może włączyć MoltenVK w systemie macOS w celu przyspieszenia renderowania Vulkan. Jeśli jednak masz problemy z emulacją grafiki, może być konieczne przełączenie się na renderowanie programowe.
  • software: użyj najbardziej odpowiedniego backendu renderowania oprogramowania dla AVD, wymaganych funkcji emulacji i wskaźników jakości. Ta opcja jest zalecana, jeśli masz problemy z trybem auto lub host.
  • lavapipe: używanie renderowania programowego ze sterownikami Mesa 3D.
  • swiftshader: używaj renderowania programowego za pomocą SwiftShader w przypadku zadań GLES i Vulkan.
  • swangle: używaj sterowników oprogramowania SwiftShader z backendem ANGLE.

Te opcje mode zostały wycofane:

  • mesa: wycofane w wersji 25.3.0.
  • angle: wycofane w wersji 27.0.2.
  • angle_indirect: wycofane w wersji 34.2.14.
  • guest: wycofany w wersji 36.4.9.
  • swiftshader_indirect: wycofany w wersji 36.4.9.
  • swangle_indirect: wycofane w wersji 36.4.9.

Konfigurowanie akceleracji maszyny wirtualnej

Akceleracja maszyny wirtualnej wykorzystuje procesor komputera, aby znacznie zwiększyć szybkość działania emulatora. Narzędzie o nazwie hipernadzorca zarządza tą interakcją za pomocą rozszerzeń wirtualizacji, które zapewnia procesor komputera. W tej sekcji opisano wymagania dotyczące korzystania z akceleracji maszyny wirtualnej oraz sposób konfigurowania akceleracji maszyny wirtualnej w każdym systemie operacyjnym.

Ogólne wymagania

Aby korzystać z akceleracji maszyny wirtualnej w emulatorze, komputer musi spełniać ogólne wymagania opisane w tej sekcji. Komputer musi też spełniać inne wymagania dotyczące systemu operacyjnego.

Wymagania dotyczące środowiska programistycznego

Aby korzystać z akceleracji maszyny wirtualnej, środowisko programistyczne musi spełniać te wymagania:

  • SDK Tools: wersja 17 lub nowsza, zalecana wersja 26.1.1 lub nowsza.
  • AVD: wymagana wersja Androida jest opisana w tabeli poniżej.

    Architektura procesora Wymagania dotyczące obrazu systemu
    X86_64 obrazy systemowe x86 lub x86_64 dla Androida 2.3.3 (poziom interfejsu API 10) lub nowszego;
    ARM64 obrazy systemowe arm64-v8a na Androida 5.0 (poziom interfejsu API 21) i nowsze wersje,

Wymagania dotyczące rozszerzenia wirtualizacji

Oprócz wymagań dotyczących środowiska programistycznego procesor komputera musi obsługiwać rozszerzenia wirtualizacji. Obsługiwane procesory:

  • Procesory Intel z technologią Intel Virtualization Technology (VT-x, vmx), takie jak Intel Core iX i Intel Core Ultra
  • Procesory AMD z AMD-V (SVM), takie jak procesory AMD Ryzen
  • Apple Silicon

Dodatkowe wymagania dotyczące procesorów Intel i AMD:

W przypadku procesorów Intel i AMD wymagane jest tłumaczenie adresów drugiego poziomu (Intel EPT lub AMD RVI). Większość nowoczesnych procesorów Intel i AMD obsługuje translację adresów drugiego poziomu. Tylko procesory Intel lub AMD pierwszej generacji, które oferują rozszerzenia wirtualizacji, mogą nie mieć translacji stron drugiego poziomu.

Jeśli nie masz pewności, czy Twój procesor obsługuje wymagane rozszerzenia, sprawdź jego specyfikację na stronie producenta. Jeśli procesor nie obsługuje tych rozszerzeń, nie możesz korzystać z akceleracji maszyny wirtualnej.

Ograniczenia

Akceleracja maszyn wirtualnych ma te ograniczenia:

  • Nie można uruchomić emulatora przyspieszanego przez maszynę wirtualną w innej maszynie wirtualnej, np. hostowanej przez VirtualBox, VMWare lub Docker. Emulator z akceleracją maszyny wirtualnej musisz uruchomić bezpośrednio na komputerze hosta.
  • W zależności od systemu operacyjnego i hipernadzorcy może nie być możliwe jednoczesne uruchamianie oprogramowania korzystającego z innej technologii wirtualizacji i emulatora przyspieszanego przez maszynę wirtualną. Przykłady takiego oprogramowania to m.in. rozwiązania maszyn wirtualnych, niektóre programy antywirusowe i niektóre rozwiązania zapobiegające oszustwom. Sytuacja ta występuje najczęściej w systemie Windows z wyłączoną funkcją Hyper-V. Większość takiego oprogramowania może bez problemu współistnieć z emulatorem Androida. Jeśli jednak wystąpią konflikty, zalecamy, aby nie uruchamiać emulatora przyspieszanego przez maszynę wirtualną jednocześnie z takim oprogramowaniem.

Informacje o hipernadzorcach

Akceleracja maszyny wirtualnej wymaga hipernadzorcy, czyli narzędzia, które korzysta z rozszerzeń wirtualizacji udostępnianych przez procesor komputera.

Bez hipernadzorcy i akceleracji maszyny wirtualnej emulator musi tłumaczyć kod maszynowy z maszyny wirtualnej blok po bloku, aby dostosować go do architektury komputera hosta. Ten proces może być dość powolny. Jeśli maszyna wirtualna i architektura komputera hosta są zgodne, emulator może uruchamiać kod bezpośrednio na procesorze hosta za pomocą hipernadzorcy. To ulepszenie znacznie zwiększa szybkość i wydajność emulatora.

Wybór hipernadzorcy zależy od systemu operacyjnego i konfiguracji komputera. Więcej informacji znajdziesz w jednej z tych sekcji:

Sprawdzanie, czy hipernadzorca jest zainstalowany

Możesz użyć opcji wiersza poleceń emulatora -accel-check, aby sprawdzić, czy na komputerze jest obecnie zainstalowany hipernadzorca.

Poniższe przykłady pokazują, jak używać opcji emulatora accel-check. W każdym przykładzie Sdk to lokalizacja pakietu Android SDK:

Windows:

c:\Users\janedoe\AppData\Local\Android> Sdk\emulator\emulator -accel-check
accel:
0
WHPX(10.0.22631) is installed and usable.
accel
W systemie Windows dostępnych jest kilka hipernadzorców. Dlatego to, co widzisz, może się różnić od tego przykładu. W wiadomości może się na przykład pojawić jedno z tych słów kluczowych: AEHD, GVM (dawna nazwa AEHD).

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.

Konfigurowanie akceleracji maszyny wirtualnej w systemie Windows

W systemie Windows zalecamy korzystanie z dostarczanej przez firmę Microsoft platformy Windows Hypervisor Platform (WHPX), która wymaga systemu Windows 10 w wersji 1803 lub nowszej. Android Studio może jednak wymagać nowszej wersji systemu Windows. W takich przypadkach postępuj zgodnie z wymaganiami systemowymi Android Studio.

Funkcja Windows Hypervisor Platform może nie być domyślnie włączona. W takich przypadkach wykonaj czynności opisane w sekcji Konfigurowanie akceleracji maszyny wirtualnej za pomocą Windows Hypervisor Platform, aby ją włączyć. Po włączeniu tej opcji może być konieczne ponowne uruchomienie urządzenia.

Konfigurowanie akceleracji maszyny wirtualnej za pomocą Windows Hypervisor Platform

Zanim włączysz WHPX, upewnij się, że Twój komputer spełnia te wymagania:

  • Procesory Intel: obsługa technologii Virtualization Technology (VT-x), Extended Page Tables (EPT) i Unrestricted Guest (UG). W ustawieniach BIOS komputera musi być włączona opcja VT-x.
  • Procesory AMD: zalecany jest procesor AMD Ryzen. W ustawieniach BIOS komputera musi być włączona wirtualizacja lub SVM.
  • Android Studio 3.2 Beta 1 lub nowszy
  • Android Emulator w wersji 27.3.8 lub nowszej,
  • Windows 10 lub nowszy,

Aby zainstalować WHPX w systemie Windows, wykonaj te czynności:

  1. Na pulpicie systemu Windows kliknij ikonę Windows, aby otworzyć menu Start.
  2. W pasku wyszukiwania wpisz Włącz lub wyłącz funkcje systemu Windows.

    Powinien pojawić się i zostać wybrany panel sterowania Włącz lub wyłącz funkcje systemu Windows.

  3. Naciśnij klawisz Enter lub kliknij Włącz lub wyłącz funkcje systemu Windows, aby uruchomić panel sterowania.

  4. Zaznacz pole obok Windows Hypervisor Platform.

  5. Kliknij OK.

  6. Po zakończeniu instalacji uruchom ponownie komputer.

Konfigurowanie akceleracji maszyn wirtualnych za pomocą sterownika hipernadzorcy Android Emulator (AEHD) w systemie Windows

Zanim zainstalujesz sterownik hipernadzorcy Android Emulator i zaczniesz go używać, Twój komputer musi spełniać te wymagania:

  • Procesory Intel lub AMD z rozszerzeniem wirtualizacji.
  • 64-bitowy system Windows 11 lub Windows 10 (32-bitowy system Windows nie jest obsługiwany)

    Użytkownicy systemów Windows 8.1, Windows 8 i Windows 7 mogą nadal korzystać z AEHD w wersji 1.7 lub starszej. Nie zapewniamy jednak pomocy w takich przypadkach.

  • Funkcje, które również korzystają z hipernadzorcy Windows Hyper-V, muszą być wyłączone w oknie dialogowym funkcji systemu Windows.

    Niektóre komponenty systemu Windows również aktywują i wykorzystują hipernadzorcę Windows Hyper-V, nawet jeśli funkcja Windows Hypervisor Platform nie jest wybrana w oknie dialogowym funkcji systemu Windows. Obejmują one funkcje zabezpieczeń, takie jak Hyper-V, Izolacja rdzenia i inne. (Pamiętaj, że funkcja Hyper-V to NIE to samo co funkcja hypervisor (Hyper-V)). Jeśli potrzebujesz tych funkcji, użyj WHPX.

Na procesorach AMD sterownik hipernadzorcy Android Emulatora można zainstalować za pomocą SDK Manager w Android Studio 4.0 Canary 5 lub nowszym.

Na procesorach Intel sterownik hipernadzorcy Android Emulatora można zainstalować za pomocą SDK Manager w Android Studio Flamingo lub nowszym.

Aby zainstalować pakiet SDK z poziomu Menedżera SDK, wykonaj te czynności:

  1. Kliknij Narzędzia > Menedżer SDK.
  2. Kliknij kartę SDK Tools i wybierz Android Emulator hypervisor driver.
  3. Kliknij OK, aby pobrać i zainstalować sterownik hipernadzorcy Android Emulator.
  4. Po instalacji sprawdź, czy sterownik działa prawidłowo, używając tego polecenia w wierszu poleceń:

    AEHD 2.1 lub nowszy

    sc query aehd
    

    Komunikat o stanie zawiera te informacje:

    SERVICE_NAME: aehd
           ...
           STATE              : 4  RUNNING
           ...
    

    Ten komunikat o błędzie oznacza, że rozszerzenie wirtualizacji nie jest włączone w BIOS-ie lub że funkcja Hyper-V nie jest wyłączona:

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

    AEHD 2.0 i starsze

    sc query gvm
    

    Komunikat o stanie zawiera te informacje:

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

    Ten komunikat o błędzie oznacza, że rozszerzenie wirtualizacji nie jest włączone w BIOS-ie lub że funkcja Hyper-V nie jest wyłączona:

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

Sterownik hipernadzorcy Android Emulatora można też pobrać i zainstalować z GitHuba. Po rozpakowaniu pakietu sterowników uruchom silent_install.bat w wierszu poleceń z uprawnieniami administratora.

Odinstaluj sterownik hipernadzorcy Android Emulator, uruchamiając te polecenia w wierszu poleceń z uprawnieniami administratora:

AEHD 2.1 lub nowszy

   sc stop aehd
   sc delete aehd

AEHD 2.0 i starsze

   sc stop gvm
   sc delete gvm

Konfigurowanie akceleracji maszyny wirtualnej w systemie macOS

W systemie macOS emulator Androida używa wbudowanego środowiska Hypervisor.Framework, które wymaga systemu macOS w wersji 10.10 (Yosemite) lub nowszej. Android Studio może jednak wymagać nowszej wersji systemu macOS. W takich przypadkach postępuj zgodnie z wymaganiami systemowymi Android Studio.

Konfigurowanie akceleracji maszyny wirtualnej w systemie Linux

Systemy oparte na Linuksie obsługują akcelerację maszyn wirtualnych za pomocą pakietu oprogramowania KVM. Postępuj zgodnie z instrukcjami instalacji KVM w systemie Linux, a następnie sprawdź, czy KVM jest włączony. W przypadku systemów Ubuntu zapoznaj się z artykułem Instalacja KVM w systemie Ubuntu.

Wymagania

Uruchomienie KVM wymaga określonych uprawnień użytkownika. Upewnij się, że masz wystarczające uprawnienia, zgodnie z instrukcjami instalacji KVM.

Aby korzystać z akceleracji maszyny wirtualnej w systemie Linux, komputer musi też spełniać te wymagania:

  • W przypadku procesorów Intel: obsługa technologii Virtualization Technology (VT-x), funkcji Intel EM64T (Intel 64) i funkcji Execute Disable (XD) Bit.
  • W przypadku procesorów AMD: obsługa AMD Virtualization (AMD-V).

Sprawdzanie, czy KVM jest zainstalowany w systemie Linux

Aby sprawdzić, czy masz zainstalowany KVM, możesz użyć opcji wiersza poleceń emulatora -accel-check. Możesz też zainstalować pakiet cpu-checker zawierający polecenie kvm-ok.

Poniższy przykład pokazuje, jak używać polecenia kvm-ok:

  1. Zainstaluj pakiet cpu-checker:

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

    Wynik 1 lub większy oznacza, że wirtualizacja jest obsługiwana. Wartość 0 oznacza, że procesor nie obsługuje wirtualizacji sprzętowej.

  2. Uruchom polecenie kvm-ok:

    sudo kvm-ok
    

    Oczekiwane dane wyjściowe:

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

    Jeśli pojawi się ten błąd, oznacza to, że nadal możesz uruchamiać maszyny wirtualne. Jednak bez rozszerzeń KVM maszyna wirtualna działa wolniej.

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

Instalowanie KVM w systemie Linux

Aby zainstalować KVM, użyj tego polecenia:

Cosmic (18.10) lub nowsza wersja:

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

Lucid (10.04) lub nowsza:

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

Karmic (9.10) lub starsza:

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

Przewodnik po odinstalowywaniu Intel HAXM

Funkcja HAXM została wycofana już jakiś czas temu (w styczniu 2023 r.), ponieważ Intel zaprzestał jej rozwijania.

Począwszy od wersji 36.2.x.x, Android Emulator nie będzie już używać HAXM. Jeśli wcześniej korzystano z tego rozwiązania, konieczne będzie zainstalowanie nowego sterownika hipernadzorcy. Zalecamy korzystanie z funkcji Windows Hypervisor Platform (WHPX) firmy Microsoft.

Zalecamy całkowite usunięcie Intel HAXM z systemu Windows, chyba że masz zainstalowane inne oprogramowanie, które zależy od HAXM, i zdecydujesz się zachować Intel HAXM i zarządzać nim samodzielnie.

Aby odinstalować Intel HAXM, wykonaj te czynności:

Sprawdzanie, czy zainstalowano Intel HAXM

Aby sprawdzić, czy na systemie Windows jest zainstalowany Intel HAXM, otwórz konsolę poleceń systemu Windows i uruchom to polecenie:

   sc query intelhaxm

Jeśli Intel HAXM jest zainstalowany i działa, w wyniku polecenia powinien pojawić się ten komunikat:

Jeśli narzędzie Intel HAXM jest zainstalowane, ale wyłączone, w wyniku polecenia powinien pojawić się ten komunikat:

W obu przypadkach, niezależnie od tego, czy Intel HAXM jest uruchomiony czy wyłączony, jest on zainstalowany. Aby kontynuować odinstalowywanie Intel HAXM, przejdź do następnego kroku.

Jeśli nie masz zainstalowanego rozszerzenia Intel HAXM, powinien wyświetlić się ten komunikat.

Odinstaluj Intel HAXM za pomocą Menedżera SDK w Android Studio.

Jeśli w przeszłości zainstalowano HAXM za pomocą SDK Manager, moduł powinien być nadal widoczny na karcie „SDK Tools”. Otwórz Menedżera SDK w Android Studio, przejdź na kartę „SDK Tools”, a następnie do wiersza „Intel x86 Emulator Accelerator (HAXM installer) – Deprecated”. Powinien on wyglądać jak na poniższym zrzucie ekranu.

Odznacz pole wyboru, jak pokazano na zrzucie ekranu poniżej.

Kliknij przycisk „Zastosuj”. Powinno pojawić się to okno:

Po pomyślnym odinstalowaniu Intel HAXM powinien wyświetlić się ten komunikat. Odinstalowywanie zostało zakończone i możesz na tym poprzestać.

Jeśli wystąpią błędy, przejdź do następnego kroku.

Odinstaluj Intel HAXM w ustawieniach systemu Windows.

Otwórz „Ustawienia” systemu Windows i wybierz „Aplikacje > Zainstalowane aplikacje”.

Znajdź wpis „Intel Hardware Accelerated Execution Manager” i kliknij „Odinstaluj”, jak pokazano na zrzucie ekranu poniżej.

Powinien uruchomić się deinstalator Intel HAXM i wyświetlić wynik. Jeśli odinstalowanie się powiedzie, przejdź do sekcji Usuwanie pakietu instalatora Intel HAXM. W przeciwnym razie przejdź do następnego kroku.

Odinstalowywanie za pomocą wiersza poleceń

  1. Zatrzymaj usługę Intel HAXM, uruchamiając polecenie „sc stop intelhaxm”. Powinny się wyświetlić te dane wyjściowe:

  2. Usuń usługę Intel HAXM, uruchamiając polecenie „sc delete intelhaxm”. Powinny się wyświetlić te dane wyjściowe:

  3. Przejdź do sekcji Usuwanie pakietu instalatora Intel HAXM.

Usuń pakiet instalatora Intel HAXM.

Ten krok jest wymagany tylko wtedy, gdy odinstalowujesz Intel HAXM za pomocą „ustawień” systemu Windows lub wiersza poleceń. Bez tego kroku SDK Manager w Android Studio może nadal wyświetlać Intel HAXM jako „Zainstalowany”.

Pakiet instalatora znajduje się w folderze<Your Android SDK folder>\extras\intel. Domyślnie pakiet Android SDK zostanie zainstalowany w folderze „C:\Users\<Twój identyfikator użytkownika systemu Windows>\AppData\Local\Android\Sdk”. Przykład znajdziesz na zrzucie ekranu poniżej.