Skonfiguruj akcelerację sprzętową emulatora Androida

Emulator działa najlepiej, gdy może korzystać ze sprzętu komputera, takiego jak procesor, procesor graficzny i modem, zamiast działać jako zwykłe oprogramowanie. Możliwość korzystania ze sprzętu komputera w celu zwiększenia wydajności nazywana jest akceleracją sprzętową.

Emulator może wykorzystywać akcelerację sprzętową, aby zwiększyć wygodę użytkowników na 2 główne sposoby:

  • akceleracja grafiki w celu szybszego renderowania ekranu;
  • przyspieszenie maszyn wirtualnych w celu zwiększenia szybkości wykonywania;

Akceleracja sprzętowa jest domyślnie włączona na większości maszyn. Jeśli nie jest ona włączona na Twoim komputerze, na tej stronie znajdziesz informacje o tym, jak skonfigurować akcelerację grafiki i maszyny wirtualnej (VM), aby uzyskać większą wydajność emulatora.

Konfigurowanie akceleracji grafiki

Akceleracja graficzna korzysta z sprzętu komputera (zwykle GPU) do przyspieszenia renderowania ekranu. Urządzenia z Androidem korzystają z interfejsu OpenGL for Embedded Systems (OpenGL ES lub GLES) do renderowania grafiki 2D i 3D na ekranie.

Podczas tworzenia urządzenia wirtualnego 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 korzystanie z akceleracji sprzętowej, która jest zwykle szybsza. Jeśli jednak Twój komputer używa sterowników graficznych, które nie są zgodne z emulatorem, może być konieczne użycie akceleracji oprogramowania.

Domyślnie emulator sam decyduje, czy ma używać akceleracji sprzętowej czy programowej, w zależności od konfiguracji komputera. Jeśli sprzęt i sterowniki GPU są zgodne, emulator będzie używać GPU. W przeciwnym razie emulator używa akceleracji oprogramowania (za pomocą procesora komputera) do symulowania przetwarzania przez GPU.

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

Wymagania

Aby korzystać z akceleracji grafiki, środowisko programistyczne musi mieć:

  • Narzędzia SDK: zalecana najnowsza wersja (co najmniej 17.0).
  • Platforma pakietu SDK: zalecana najnowsza wersja (Android 4.0.3, wersja 3 lub nowsza)

Konfigurowanie akceleracji grafiki w Menedżerze AVD

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

  1. Otwórz Menedżera AVD.
  2. Utwórz nowy AVD lub edytuj istniejący.
  3. W oknie Sprawdzanie konfiguracji odszukaj sekcję Emulated Performance (Emulated Performance).
  4. Wybierz wartość dla opcji Grafika:.
  5. Kliknij Zakończ.

Konfigurowanie akceleracji grafiki z poziomu wiersza poleceń

Aby określić typ akceleracji graficznej podczas uruchamiania AVD z poziomu wiersza poleceń, użyj opcji -gpu, jak 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ć sprzętowe lub programowe przyspieszenie grafiki na podstawie konfiguracji komputera.
  • host: użyj karty graficznej komputera do akceleracji sprzętowej. Ta opcja zapewnia zazwyczaj najwyższą jakość grafiki i najlepszą wydajność emulatora. Jeśli jednak sterowniki karty graficznej mają problemy z renderowaniem OpenGL, konieczne może być użycie opcji swiftshader_indirect lub angle_indirect.
  • swiftshader_indirect: użyj zgodnego z szybkim rozruchem wariantu SwiftShader do renderowania grafiki za pomocą akceleracji oprogramowania. Ta opcja jest dobrą alternatywą dla trybu host, jeśli Twój komputer nie może korzystać z akceleracji sprzętowej.
  • angle_indirect: (tylko w systemie Windows) użyj wersji ANGLE Direct3D zgodnej z szybkim uruchamianiem, aby renderować grafikę przy użyciu akceleracji programowej. Ta opcja jest dobrą alternatywą dla trybu host, jeśli Twój komputer nie może korzystać z akceleracji sprzętowej. W większości przypadków wydajność ANGLE jest podobna do tej w trybie host, ponieważ ANGLE używa Microsoft DirectX zamiast OpenGL.

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

  • guest: użyj renderowania po stronie klienta. Ta opcja zapewnia najniższą jakość grafiki i najmniejszą wydajność emulatora.

Te opcje mode są wycofane:

  • swiftshader: wycofane w wersji 27.0.2. Zamiast tego użyj pola swiftshader_indirect.
  • angle: wycofane w wersji 27.0.2. Zamiast tego użyj angle_indirect (dotyczy tylko systemu Windows).
  • mesa: wycofane w wersji 25.3. Zamiast tego użyj pola swiftshader_indirect.

Włączanie renderowania Skia dla interfejsu użytkownika na Androidzie

Jeśli używasz obrazów na poziomie API 27 lub wyższym, emulator może renderować interfejs Androida za pomocą Skia. Skia pomaga emulatorowi wygładzać i renderować grafikę w sposób bardziej płynny i wydajny.

Aby włączyć renderowanie Skia, w terminalu adb użyj tych poleceń:

su
setprop debug.hwui.renderer skiagl
stop
start

Konfigurowanie akceleracji maszyn wirtualnych

Przyspieszenie maszyny wirtualnej wykorzystuje procesor komputera, aby znacznie zwiększyć szybkość działania emulatora. Zarządza tym hipernadzorce, który korzysta z rozszerzeń wirtualizacji udostępnianych przez procesor komputera. W tej sekcji opisaliśmy wymagania dotyczące korzystania z przyspieszenia maszyny wirtualnej oraz jak skonfigurować przyspieszenie maszyny wirtualnej w każdym systemie operacyjnym.

Ogólne wymagania

Aby można było korzystać z przyspieszenia maszyny wirtualnej w emulatorze, Twój komputer musi spełniać ogólne wymagania podane w tej sekcji. Komputer musi też spełniać inne wymagania dotyczące Twojego systemu operacyjnego.

Wymagania dotyczące środowiska programistycznego

Aby można było korzystać z przyspieszania maszyny wirtualnej, środowisko programistyczne musi spełniać te wymagania:

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

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

Wymagania dotyczące rozszerzeń 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 procesory Intel Core iX i Intel Core Ultra
  • procesory AMD z technologią 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 wymagana jest translacja adresów drugiego poziomu (Intel EPT lub AMD RVI). Większość nowoczesnych procesorów Intel i AMD obsługuje tłumaczenie adresów na drugim poziomie. Tylko procesory Intel lub AMD pierwszej generacji z rozszerzeniami do wirtualizacji mogą nie mieć tłumaczeń stron drugiego poziomu.

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

Ograniczenia

Przyspieszanie maszyn wirtualnych ma te ograniczenia:

  • Nie możesz uruchomić emulatora przyspieszonego przez maszynę wirtualną w innej maszynie wirtualnej, takiej jak maszyna wirtualna hostowana przez VirtualBox, VMWare lub Docker. Musisz uruchomić emulator przyspieszony przez maszynę wirtualną bezpośrednio na komputerze hosta.
  • W zależności od systemu operacyjnego i hypervisora nie można uruchomić oprogramowania, które korzysta z innej technologii wirtualizacji, w tym samym czasie co emulator przyspieszony przez maszynę wirtualną. Przykłady takich programów to m.in. rozwiązania dotyczące maszyn wirtualnych, niektóre programy antywirusowe i nieliczne rozwiązania antycheatowe. Problem występuje głównie w systemie Windows z wyłączoną funkcją Hyper-V. Większość tego typu oprogramowania może współistnieć z emulatorem Androida bez żadnych problemów. W przypadku konfliktów zalecamy jednak nieuruchamianie emulatora przyspieszonego przez maszynę wirtualną w tym samym czasie z takimi programami.

Informacje o hipernadzorcach

Przyspieszanie maszyny wirtualnej wymaga hipervisora, czyli narzędzia korzystającego z rozszerzeń wirtualizacji udostępnianych przez procesor komputera.

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

Wybór odpowiedniego hypervisora zależy od systemu operacyjnego i konfiguracji komputera. Więcej informacji znajdziesz w jednym z tych rozdziałów:

Sprawdzanie, czy zainstalowano hypervisor

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

Poniższe przykłady pokazują, jak korzystać z 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 można wybrać różne hiperwizory. Dlatego widok może się różnić od tego, który widzisz na przykładzie. W komunikacie może na przykład pojawić się 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

Przyspieszenie maszyny wirtualnej w systemie Windows może korzystać z jednego z dwóch hypervisorów:

  • Platforma Windows Hypervisor (WHPX)
  • Sterownik hipernadzoru emulatora Androida (AEHD)

Platforma Windows Hypervisor korzysta z hypervisora Hyper-V dostarczanego z systemem Windows i zapewnia najlepszą kompatybilność przy mniejszej niestabilności. Jeśli to możliwe, użyj WHPX.

Jeśli Twój system nie obsługuje WHPX lub masz inne obawy dotyczące jego używania, możesz użyć sterownika Hypervisor emulatora Androida.

Konfigurowanie przyspieszania maszyn wirtualnych za pomocą funkcji Windows Hypervisor Platform

Zanim włączysz WHPX, Twój komputer musi spełniać te wymagania:

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ę panel Włącz lub wyłącz funkcje systemu Windows, który należy wybrać.

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

  4. Zaznacz pole obok opcji Windows Hypervisor Platform.

  5. Kliknij OK.

  6. Po zakończeniu instalacji uruchom ponownie komputer.

Konfigurowanie przyspieszania maszyny wirtualnej za pomocą sterownika hypervisora emulatora Androida (AEHD) w systemie Windows

Zanim zaczniesz instalować i używać sterownika hypervisora emulatora Androida, Twój komputer musi spełniać te wymagania:

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

    Użytkownicy systemu Windows 8.1, Windows 8 i Windows 7 mogą nadal używać wersji AEHD 1.7 lub starszej. W takich przypadkach nie zapewniamy jednak pomocy.

  • Funkcje, które korzystają z hypervisora Windows Hyper-V, muszą być wyłączone w oknie Funkcje Windows.

    Niektóre komponenty Windows aktywują i korzystają z hipernadzorca Windows Hyper-V, nawet jeśli w oknie Funkcje systemu Windows nie jest zaznaczona opcja Windows Hypervisor Platform. Obejmuje to funkcje zabezpieczeń, takie jak Hyper-V i Core Isolation. (funkcja Hyper-V nie jest taka sama jak hypervisor Hyper-V). Jeśli potrzebujesz tych funkcji, użyj WHPX.

W przypadku procesorów AMD sterownik hypervisora emulatora Androida można zainstalować za pomocą Menedżera pakietu SDK w Android Studio 4.0 Canary 5 lub nowszej.

W przypadku procesorów Intel sterownik hypervisora emulatora Androida można zainstalować za pomocą Menedżera SDK w Android Studio Flamingo lub nowszej wersji.

Aby zainstalować pakiet SDK za pomocą Menedżera pakietu SDK:

  1. Kliknij Narzędzia > Menedżer SDK.
  2. Kliknij kartę Narzędzia pakietu SDK i wybierz Menedżer hypervisora Android Emulatora.
  3. Kliknij OK, aby pobrać i zainstalować sterownik hypervisora emulatora Androida.
  4. Po zainstalowaniu sterownika sprawdź, czy działa on prawidłowo, używając tego polecenia wiersza poleceń:

    AEHD 2.1 lub nowsza

    sc query aehd
    

    Wiadomość 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 Hyper-V nie jest wyłączone:

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

    AEHD 2.0 i starsze

    sc query gvm
    

    Wiadomość 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 Hyper-V nie jest wyłączone:

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

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

Odinstaluj sterownik hypervisora emulatora Androida, wykonując te polecenia w wierszu poleceń z uprawnieniami administratora:

AEHD 2.1 lub nowsza

   sc stop aehd
   sc delete aehd

AEHD 2.0 lub starsza wersja

   sc stop gvm
   sc delete gvm

Konfigurowanie akceleracji maszyny wirtualnej w systemie macOS

Na macOS emulator Androida korzysta z wbudowanej Hypervisor.Framework, która wymaga systemu macOS w wersji 10.10 (Yosemite) lub nowszej. Jednak Android Studio może 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ą przyspieszenie maszyn wirtualnych za pomocą pakietu oprogramowania KVM. Postępuj zgodnie z instrukcjami dotyczącymi instalacji KVM w systemie Linux, a następnie sprawdź, czy KVM jest włączone. W przypadku systemów Ubuntu zapoznaj się z artykułem Instalacja KVM w Ubuntu.

Wymagania

Uruchamianie KVM wymaga określonych uprawnień użytkownika. Sprawdź, czy masz wystarczające uprawnienia zgodnie z instrukcjami instalacji KVM.

Aby można było korzystać z przyspieszania maszyny wirtualnej w systemie Linux, Twój komputer musi też spełniać te wymagania:

  • W przypadku procesorów Intel: włączona obsługa technologii wirtualizacji (VT-x), funkcji Intel EM64T (Intel 64) i funkcji bitu zakazu wykonywania (XD).
  • W przypadku procesorów AMD: obsługa wirtualizacji AMD (AMD-V).

Sprawdź, czy KVM jest obecnie 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.

Ten 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 równy 1 lub większy oznacza, że wirtualizacja jest obsługiwana. Wynik 0 oznacza, że procesor nie obsługuje wirtualizacji sprzętowej.

  2. Uruchom polecenie kvm-ok:

    sudo kvm-ok
    

    Oczekiwany wynik:

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

    Jeśli pojawi się ten komunikat o błędzie, oznacza to, że nadal możesz uruchamiać maszyny wirtualne. Bez rozszerzeń KVM maszyna wirtualna będzie jednak działać wolniej.

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

Instalowanie KVM w Linuksie

Aby zainstalować KVM, użyj tego polecenia:

Cosmic (18.10) lub nowsze:

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 dotyczący odinstalowywania Intel HAXM

Od wersji 33.x.x.x emulatora funkcja HAXM została wycofana, ponieważ firma Intel wstrzymała jej rozwój. Sterownik hiperwizora emulatora Androida (AEHD) zastępuje funkcję Intel HAXM na procesorach Intel.

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

Aby odinstalować Intel HAXM:

Sprawdź, czy zainstalowana jest platforma Intel HAXM

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

   sc query intelhaxm

Jeśli Intel HAXM jest zainstalowany i uruchomiony, w wyniku polecenia powinien się wyświetlić ten komunikat:

Jeśli Intel HAXM jest zainstalowany, ale wyłączony, w danych wyjściowych polecenia powinien pojawić się ten komunikat:

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

Jeśli Intel HAXM nie jest zainstalowany, zobaczysz ten komunikat.

Odinstaluj Intel HAXM za pomocą menedżera pakietu SDK w Android Studio

Otwórz Menedżera pakietu SDK w Android Studio, przejdź do karty „Narzędzia pakietu SDK”, a potem do linii „Intel x86 Emulator Accelerator (HAXM installer) - Deprecated”. Powinien on wyglądać jak na poniższym zrzucie ekranu.

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

Kliknij przycisk „Zastosuj”, a powinno pojawić się okno dialogowe.

Po pomyślnym odinstalowaniu Intel HAXM powinien wyświetlić się ten komunikat. Odinstalowanie zostało zakończone. Możesz tutaj zakończyć.

W razie wystąpienia błędów przejdź do następnego kroku.

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

Otwórz „Ustawienia” w Windows i kliknij „Aplikacje > Zainstalowane aplikacje”.

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

Program do odinstalowywania HAXM firmy Intel powinien się uruchomić i zgłosić wynik. Jeśli odinstalowanie zakończy się powodzeniem, przejdź do sekcji Usuwanie pakietu instalacyjnego Intel HAXM. W przeciwnym razie przejdź do następnego kroku.

Odinstalowanie 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 menedżer SDK w Android Studio może nadal wyświetlać Intel HAXM jako „Zainstalowany”.

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