Skonfiguruj akcelerację sprzętową emulatora Androida

Emulator działa najlepiej, gdy może używać elementów sprzętowych komputera, takich jak CPU, GPU i modem, i nie używać czystego oprogramowania. Możliwość wykorzystania sprzętu komputera do poprawy wydajności jest nazywana akceleracją sprzętową.

Emulator może korzystać z akceleracji sprzętowej, by poprawić wygodę użytkowania na 2 sposoby:

  • Akceleracja grafiki dla lepszego renderowania ekranu
  • Przyspieszenie działania maszyn wirtualnych w celu zwiększenia szybkości wykonywania

Akceleracja sprzętowa jest domyślnie włączona na większości komputerów. Jeśli ta funkcja nie jest włączona na Twoim komputerze, na tej stronie znajdziesz informacje o tym, jak skonfigurować przyspieszenie grafiki i maszyn wirtualnych, aby uzyskać większą wydajność przy użyciu emulatora.

Skonfiguruj akcelerację grafiki

Akceleracja grafiki korzysta ze sprzętu komputera (zwykle z GPU), aby przyspieszyć renderowanie ekranu. Urządzenia z Androidem używają standardu OpenGL w systemach wbudowanych (OpenGL ES lub GLES) do renderowania grafiki 2D i 3D na ekranie.

Podczas tworzenia wirtualnego urządzenia z Androidem (AVD) w Menedżerze AVD możesz określić, czy emulator ma używać sprzętu czy oprogramowania do emulacji GPU AVD. Zalecamy akcelerację sprzętową, która jest zwykle szybsza. Może być jednak konieczne użycie akceleracji programowej, jeśli komputer korzysta ze sterowników karty graficznej, która nie jest z nim zgodna.

Domyślnie emulator decyduje, czy użyć akceleracji graficznej sprzętowej czy programowej, na podstawie konfiguracji komputera. Jeśli Twój sprzęt i sterowniki są zgodne, emulator używa GPU. W przeciwnym razie emulator używa akceleracji programowej (z wykorzystaniem procesora komputera), aby symulować przetwarzanie GPU.

Jeśli uruchomisz emulator z wiersza poleceń, możesz zastąpić ustawienie przyspieszenia grafiki w AVD danej instancji urządzenia wirtualnego.

Wymagania

Aby można było korzystać z akceleracji grafiki, środowisko programistyczne musi mieć:

  • Narzędzia SDK: zalecamy korzystanie z najnowszej wersji (minimum 17).
  • Platforma SDK: zalecana najnowsza wersja (Android 4.0.3, wersja 3, minimum)

Skonfiguruj akcelerację grafiki w menedżerze AVD

Aby skonfigurować akcelerację grafiki w AVD, wykonaj te czynności:

  1. Otwórz Menedżera AVD.
  2. Utwórz nowy średni czas oglądania lub edytuj istniejący.
  3. W oknie Weryfikacja konfiguracji znajdź sekcję Emulowana wydajność.
  4. Wybierz wartość w opcji Grafika:.
  5. Kliknij Zakończ.

Skonfiguruj akcelerację grafiki z poziomu wiersza poleceń

Aby określić typ akceleracji graficznej po uruchomieniu programu AVD z poziomu wiersza poleceń, dodaj opcję -gpu, jak pokazano w tym przykładzie:

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

Wartość mode może być ustawiona na jedną z tych opcji:

  • auto: pozwala emulatorowi wybrać akcelerację sprzętową lub programową w zależności od konfiguracji komputera.
  • host: używaj GPU w komputerze do akceleracji sprzętowej. Ta opcja zapewnia zwykle najwyższą jakość grafiki i wydajność emulatora. Jeśli jednak sterowniki karty graficznej powodują problemy z renderowaniem OpenGL, konieczne może być użycie opcji swiftshader_indirect lub angle_indirect.
  • swiftshader_indirect: do renderowania grafiki za pomocą akceleracji programowej użyj wariantu SwiftShader zgodnej z szybkim rozruchem. Ta opcja jest dobrym alternatywą dla trybu host w sytuacji, gdy komputer nie może korzystać z akceleracji sprzętowej.
  • angle_indirect (tylko w systemie Windows) do renderowania grafiki z użyciem akceleracji programowej używaj wariantu ANGLE Direct3D zgodnej z szybkim rozruchem. Ta opcja jest dobrym alternatywą dla trybu host w sytuacji, gdy komputer nie może korzystać z akceleracji sprzętowej. W większości przypadków działanie ANGLE jest podobne do trybu host, ponieważ ANGLE korzysta z Microsoft Direct zamiast OpenGL.

    W systemie Windows sterowniki Microsoft DirectX zwykle powodują mniej problemów niż sterowniki OpenGL. Ta opcja korzysta z Direct3D 11 i wymaga systemu Windows 10, Windows 8.1 lub Windows 7 SP1 z aktualizacją platformy Windows 7.

  • guest: używaj renderowania oprogramowania po stronie gościa. Ta opcja zapewnia emulatorowi najniższą jakość grafiki i najniższą wydajność.

Te opcje typu mode zostały wycofane:

  • swiftshader: wycofane w wersji 27.0.2. Użyj w zamian zasady swiftshader_indirect.
  • angle: wycofane w wersji 27.0.2. Użyj w zamian zasady angle_indirect (tylko Windows).
  • mesa: wycofane w wersji 25.3. Użyj w zamian zasady swiftshader_indirect.

Włącz renderowanie Skia w interfejsie Androida

Gdy używasz obrazów dla interfejsu API na poziomie 27 lub wyższym, emulator może renderować interfejs Androida za pomocą platformy Skia. Skia pomaga emulatorowi płynniej i wydajniej renderować grafikę.

Aby włączyć renderowanie na platformie Skia, użyj tych poleceń w powłoce adb:

su
setprop debug.hwui.renderer skiagl
stop
start

Skonfiguruj przyspieszenie maszyn wirtualnych

Akceleracja maszyny wirtualnej korzysta z procesora komputera, aby znacznie zwiększyć szybkość wykonywania emulatora. Tą interakcją zarządza narzędzie o nazwie hipernadzorca, korzystając z rozszerzeń wirtualizacji zapewnianych przez procesor komputera. W tej sekcji znajdziesz wymagania dotyczące korzystania z przyspieszenia maszyn wirtualnych i dowiesz się, jak je skonfigurować w poszczególnych systemach operacyjnych.

Ogólne wymagania

Aby korzystać z akceleracji maszyn wirtualnych za pomocą emulatora, komputer musi spełniać ogólne wymagania opisane w tej sekcji. Komputer musi też spełniać inne wymagania zależne od systemu operacyjnego.

Wymagania dotyczące środowiska programistycznego

Aby można było korzystać z akceleracji maszyn wirtualnych, Twoje środowisko programistyczne musi spełniać te wymagania:

  • Narzędzia SDK: minimalna wersja 17; zalecana wersja 26.1.1 lub nowsza
  • AVD: wymaganą wersję Androida opisano w poniższej tabeli.

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

Wymagania dotyczące rozszerzeń wirtualizacji

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

  • Procesory Intel z technologią wirtualizacji Intel (VT-x, vmx), w tym Intel Core iX i Intel Core Ultra.
  • Procesory AMD z procesorami AMD-V (SVM), np. AMD Ryzen
  • Krzem jabłkowy

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 tłumaczenie drugiego poziomu adresu. Tylko procesory Intel lub AMD pierwszej generacji z rozszerzeniami wirtualizacji mogą nie obsługiwać tłumaczenia stron drugiego poziomu.

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

Ograniczenia

Przyspieszenie maszyn wirtualnych ma te ograniczenia:

  • Nie możesz uruchomić emulatora z akceleracją maszyny wirtualnej w innej maszynie wirtualnej – na przykład w maszynie wirtualnej hostowanej przez VirtualBox, VMWare lub Dockerem. Musisz uruchomić emulator wspomagany maszyną wirtualną bezpośrednio na komputerze hosta.
  • W zależności od systemu operacyjnego i hipernadzorcy nie możesz jednocześnie używać emulatora z akceleracją maszyn wirtualnych, a także oprogramowania korzystającego z innej technologii wirtualizacji. Przykładami takiego oprogramowania są między innymi rozwiązania maszyn wirtualnych, niektóre programy antywirusowe i kilka rozwiązań chroniących przed oszustami. Sytuację tę obserwujemy głównie w systemie Windows z wyłączoną funkcją Hyper-V. Większość takich programów może bez problemu współistnieć z emulatorem Androida. W przypadku wystąpienia konfliktów nie zaleca się jednak jednoczesnego uruchamiania emulatora z akceleracją maszyny wirtualnej z takim oprogramowaniem.

Informacje o hipernadzorcy

Akceleracja maszyny wirtualnej wymaga hipernadzorcy – narzędzia korzystającego z rozszerzeń wirtualizacji udostępnianych przez procesor komputera.

Bez hipernadzorcy i akceleracji maszyny wirtualnej emulator musi tłumaczyć kod maszyny z bloku po blokach maszyn wirtualnych, aby dostosować się do architektury komputera hosta. Ten proces może przebiegać dość wolno. Dzięki hipernadzorcy, gdy maszyna wirtualna i architektura hosta są zgodne, emulator może za pomocą hipernadzorcy uruchomić kod bezpośrednio na procesorze hosta. To znaczne zwiększenie zarówno szybkości, jak i wydajności emulatora.

To, który hipernadzorca sprawdzi się najlepiej w Twoim przypadku, zależy od systemu operacyjnego i konfiguracji komputera. Więcej informacji znajdziesz w tych sekcjach:

Sprawdzanie, czy zainstalowany jest hipernadzorca

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

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
AEHD (version 2.2) is installed and usable.
accel
W systemie Windows dostępnych jest wiele funkcji hipernadzorcy. Ten przykład może być inny niż ten, W wiadomości możesz na przykład zobaczyć jedno z tych słów kluczowych: GVM(wcześniej 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.

Skonfiguruj akcelerację maszyn wirtualnych w systemie Windows

Przyspieszenie maszyn wirtualnych w systemie Windows może korzystać z jednego z 2 hipernadzorców:

  • Windows Hypervisor Platform (WHPX)
  • Sterownik hipernadzorcy emulatora Androida (AEHD)

Wybierz hipernadzorcę w systemie Windows

W tej sekcji znajdziesz kryteria pozwalające określić, którego hipernadzorcy należy użyć. W dalszej części artykułu dowiesz się, jak skonfigurować przyspieszenie maszyn wirtualnych za pomocą każdego hipernadzorcy.

Kryteria Hipernadzorca
Musisz jednocześnie uruchomić funkcję Hyper-V razem z emulatorem Androida. Użyj WHPX.
Nie musisz uruchamiać funkcji Hyper-V jednocześnie z emulatorem Androida. Użyj sterownika hipernadzorcy emulatora Androida.

Skonfiguruj akcelerację maszyn wirtualnych za pomocą Windows Hypervisor Platform

Aby można było włączyć WHPX, komputer musi spełniać te wymagania:

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

  1. Na pulpicie systemu Windows kliknij prawym przyciskiem myszy ikonę systemu Windows i wybierz Aplikacje i funkcje.
  2. W sekcji Powiązane ustawienia kliknij Programy i funkcje.
  3. Kliknij Włącza lub wyłącza funkcje systemu Windows.
  4. Wybierz Windows Hypervisor Platform.

  5. Kliknij OK.

  6. Po zakończeniu instalacji uruchom ponownie komputer.

Skonfiguruj akcelerację maszyn wirtualnych za pomocą sterownika hipernadzorcy emulatora Androida (AEHD) w systemie Windows

Aby można było zainstalować i używać sterownika hipernadzorcy emulatora Androida, komputer musi spełniać następujące 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 formatu AEHD w wersji 1.7 lub starszej. W takich sytuacjach pomoc jest niedostępna.

  • Funkcja Hyper-V musi być wyłączona w oknie Funkcje systemu Windows.

    Niektóre komponenty okna mogą włączać hipernadzorcę funkcji Hyper-V bez włączania funkcji Hyper-V w oknie Funkcje systemu Windows, na przykład izolacja rdzeni oferowana przez Windows Defender. W takich przypadkach używaj zamiast tego WHPX.

Na procesorach AMD sterownik hipernadzorcy emulatora Androida można zainstalować za pomocą Menedżera pakietów SDK w Android Studio 4.0 w wersji Canary 5 lub nowszej.

Na procesorach Intel sterownik hipernadzorcy emulatora Androida można zainstalować za pomocą Menedżera SDK w Android Studio Flamingo lub w nowszej wersji.

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

  1. Wybierz Narzędzia > Menedżer SDK.
  2. Kliknij kartę Narzędzia SDK i wybierz Sterownik hipernadzorcy emulatora Androida.
  3. Kliknij OK, aby pobrać i zainstalować sterownik hipernadzorcy emulatora Androida.
  4. Po zainstalowaniu sprawdź, czy sterownik działa prawidłowo, korzystając z następującego polecenia wiersza poleceń:

    AEHD 2.1 lub nowszy

    sc query aehd
    

    Komunikat o stanie zawiera następujące informacje:

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

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

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

    AEHD 2.0 lub starszy

    sc query gvm
    

    Komunikat o stanie zawiera następujące informacje:

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

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

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

Sterownik hipernadzorcy emulatora Androida możesz też pobrać i zainstalować z GitHub. Po rozpakowaniu pakietu sterownika uruchom silent_install.bat w wierszu poleceń z uprawnieniami administratora.

Odinstaluj sterownik hipernadzorcy emulatora Androida za pomocą tych poleceń w wierszu poleceń z uprawnieniami administratora:

AEHD 2.1 lub nowszy

   sc stop aehd
   sc delete aehd

AEHD 2.0 lub starszy

   sc stop gvm
   sc delete gvm

Skonfiguruj akcelerację maszyn wirtualnych w systemie macOS

W systemie macOS Emulator Androida używa wbudowanej funkcji Hypervisor.Framework, która wymaga systemu macOS 10.10 (Yosemite) lub nowszego. Android Studio może jednak wymagać wyższej wersji dla systemu macOS. W takich przypadkach należy przestrzegać wymagań systemowych Android Studio.

Skonfiguruj akcelerację maszyn wirtualnych w systemie Linux

Systemy oparte na Linuksie obsługują przyspieszenie maszyn wirtualnych za pomocą pakietu oprogramowania KVM. Wykonaj instrukcje instalowania KVM w systemie Linux i sprawdź, czy jest ona włączona. W przypadku systemów Ubuntu zapoznaj się z artykułem Instalacja KVM Ubuntu.

Wymagania

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

Aby można było korzystać z akceleracji maszyn wirtualnych w systemie Linux, komputer musi też spełniać te wymagania:

  • Dotyczy procesorów Intel: włączono obsługę technologii wirtualizacji (VT-x), funkcji Intel EM64T (Intel 64) oraz funkcji Execute Disable (XD) Bit.
  • Procesory AMD: obsługa wirtualizacji AMD (AMD-V).

Sprawdź, czy w systemie Linux jest obecnie zainstalowana platforma KVM

Aby sprawdzić, czy masz zainstalowaną maszynę wirtualną, 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
    

    Wartość 1 lub większa oznacza, że wirtualizacja jest obsługiwana. Wartość 0 oznacza, że Twój 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 wystąpi 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:

Kosmiczne (18.10) lub nowsze:

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

Lucid (10.04) lub nowsze:

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

Karmic (9.10) lub starszy:

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

Przewodnik na temat odinstalowywania Intel HAXM

Od emulatora 33.x.x.x platforma HAXM została wycofana, ponieważ Intel rezygnuje z projektowania HAXM. Emulator Androida zastępuje sterownik Intel HAXM na procesorach Intel.

Zalecamy całkowite usunięcie procesora Intel HAXM z systemu Windows, chyba że masz zainstalowane inne oprogramowanie zależne od HAXM i chcesz zachować tę funkcję i samodzielnie nią zarządzać.

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

Sprawdź, czy zainstalowana jest technologia Intel HAXM

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

   sc query intelhaxm

Jeśli karta Intel HAXM jest zainstalowana i uruchomiona, w danych wyjściowych polecenia powinien pojawić się ten komunikat.

Jeśli technologia Intel HAXM jest zainstalowana, ale wyłączona, w danych wyjściowych polecenia powinien pojawić się ten komunikat.

W obu przypadkach, niezależnie od tego, czy procesor Intel HAXM jest uruchomiony czy wyłączony, jest instalowany. Aby kontynuować odinstalowywanie systemu Intel HAXM, musisz przejść do następnego kroku.

Jeśli nie zainstalowano procesora Intel HAXM, powinien pojawić się ten komunikat.

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

Otwórz Menedżera pakietów SDK w Android Studio, przejdź do karty „SDK Tools” i przejdź do wiersza „Intel x86 Emulator Accelerator (HAXM installer) - Restricted (Wycofany). Powinien wyglądać jak na zrzucie ekranu poniżej.

Usuń zaznaczenie pola wyboru jak na poniższym zrzucie ekranu.

Kliknij przycisk „Zastosuj”. Powinno się wyświetlić poniższe okno.

Po odinstalowaniu procesora Intel HAXM powinny pojawić się poniższe komunikaty. Odinstalowanie zostało zakończone i możesz zakończyć tutaj.

W przypadku błędów przejdź do następnego kroku.

Odinstaluj Intel HAXM za pomocą „ustawień” systemu Windows.

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

Znajdź pozycję „Intel Hardware Accelerated Execution Manager” i kliknij „Odinstaluj”, jak to widać na zrzucie ekranu poniżej.

Dezinstalator Intel HAXM powinien uruchomić się i zgłosić wynik. Jeśli odinstalowywanie się uda, przejdź do Usuwanie pakietu instalatora Intel HAXM. W przeciwnym razie przejdź do następnego kroku.

Odinstalowywanie przy użyciu wiersza poleceń

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

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

  3. Otwórz Usuń pakiet instalatora Intel HAXM.

Usuń pakiet instalatora Intel HAXM.

Ten krok jest wymagany tylko przy odinstalowywaniu systemu Intel HAXM za pomocą „ustawień” lub wiersza poleceń systemu Windows. Jeśli nie wykonasz tego kroku, menedżer pakietów Android Studio może nadal wyświetlać Intel HAXM ze stanem „Zainstalowana”.

Pakiet instalatora znajduje się w<folderze Twojego pakietu Android SDK>\extras\intel. Domyślnie pakiet SDK do Androida będzie instalowany w lokalizacji „C:\Użytkownicy\<Twój identyfikator użytkownika Windows >\AppData\Local\Android\Sdk”. Zobacz przykład na zrzucie ekranu poniżej.