Skonfiguruj akcelerację sprzętową emulatora Androida

Emulator działa najlepiej, jeśli może korzystać z procesora, np. procesora, GPU i modemu, zamiast używać samego oprogramowania. Możliwość zwiększenia wydajności przez wykorzystanie sprzętu maszyny to akceleracja sprzętowa.

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

  • Akceleracja graficzna dla lepszego renderowania ekranu
  • Przyspieszenie maszyny wirtualnej zwiększające szybkość wykonywania

Na większości komputerów akceleracja sprzętowa jest domyślnie włączona. Jeśli nie jest włączone na Twoim komputerze, na tej stronie dowiesz się, jak skonfigurować grafikę i przyspieszenie maszyny wirtualnej, aby uzyskać większą wydajność z emulatora.

Skonfiguruj akcelerację graficzną

Akceleracja graficzna wykorzystuje sprzęt komputera (zwykle GPU), aby przyspieszyć renderowanie ekranu. Urządzenia z Androidem używają trybu OpenGL dla systemów osadzonych (OpenGL ES lub GLES) do renderowania na ekranie grafiki 2D i 3D.

Gdy tworzysz urządzenie wirtualne z Androidem (AVD) w Menedżerze AVD, możesz określić, czy do emulowania procesora graficznego AVD będzie używany sprzęt lub oprogramowanie. Zalecana jest akceleracja sprzętowa, która zwykle jest szybsza. Jednak jeśli komputer używa sterowników karty graficznej, które nie są zgodne z emulatorem, może być konieczne użycie akceleracji programowej.

Domyślnie emulator określa, czy na podstawie konfiguracji komputera zastosować akcelerację sprzętową czy programową. Jeśli Twój sprzęt i sterowniki GPU są zgodne, emulator używa GPU. W przeciwnym razie emulator wykorzystuje akcelerację programową (z wykorzystaniem procesora komputera), aby symulować przetwarzanie GPU.

Jeśli uruchamiasz emulator z wiersza polecenia, możesz zastąpić ustawienie akceleracji graficznej w komponencie AVD dla danej instancji urządzenia wirtualnego.

Wymagania

Aby korzystać z akceleracji graficznej, w środowisku programistycznym musi być:

  • Narzędzia SDK: zalecana najnowsza wersja (minimum 17)
  • SDK Platform: zalecana najnowsza wersja (Android 4.0.3, wersja 3, minimum)

Skonfiguruj akcelerację graficzną w Menedżerze AVD Manager

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

  1. Otwórz Menedżera AVD.
  2. Utwórz nowy AVD lub edytuj istniejący.
  3. W oknie Zweryfikuj konfigurację znajdź sekcję Wydajność emulowana.
  4. Wybierz wartość opcji Grafika:.
  5. Kliknij Zakończ.

Skonfiguruj akcelerację graficzną z poziomu wiersza poleceń

Aby określić typ akceleracji graficznej po uruchomieniu narzędzia AVD z poziomu wiersza poleceń, dołącz opcję -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ętową lub programową akcelerację graficzną w zależności od konfiguracji komputera.
  • host: użyj akceleracji sprzętowej GPU w komputerze. Ta opcja zwykle zapewnia najwyższą jakość grafiki i najwyższą 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 zgodnej z szybkim rozruchem wariantu SwiftShader, aby renderować grafikę za pomocą akceleracji programowej. Jest to dobra alternatywa dla trybu host, gdy komputer nie obsługuje akceleracji sprzętowej.
  • angle_indirect: (tylko Windows) użyj zgodnej z szybkim rozruchem wariantu ANGLE Direct3D, aby renderować grafikę za pomocą akceleracji programowej. Jest to dobra alternatywa dla trybu host, gdy komputer nie obsługuje akceleracji sprzętowej. W większości przypadków wydajność ANGLE jest podobna do działania trybu host, ponieważ ANGLE używa Microsoft Direct, a nie OpenGL.

    W systemie Windows sterowniki Microsoft DirectX zwykle mają 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: korzystaj z renderowania oprogramowania po stronie gościa. Ta opcja zapewnia najniższą jakość grafiki i najniższą wydajność emulatora.

Te opcje mode zostały wycofane:

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

Włącz renderowanie Skia w interfejsie Androida

Jeśli używasz obrazów dla interfejsu API na poziomie 27 lub wyższym, emulator może wyrenderować interfejs Androida za pomocą środowiska Skia. Skia pomaga emulatorowi szybciej i wydajniej renderować grafikę.

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

su
setprop debug.hwui.renderer skiagl
stop
start

Skonfiguruj akcelerację maszyn wirtualnych

Funkcja akceleracji maszyn wirtualnych korzysta z procesora komputera, aby znacznie zwiększyć szybkość działania emulatora. Narzędzie o nazwie hipervisor zarządza tą interakcją za pomocą rozszerzeń wirtualizacji udostępnianych przez procesor komputera. W tej sekcji znajdziesz wymagania dotyczące korzystania z akceleracji maszyn wirtualnych oraz sposoby jej konfigurowania w każdym systemie operacyjnym.

Ogólne wymagania

Aby można było użyć akceleracji maszyn wirtualnych z emulatorem, komputer musi spełniać ogólne wymagania opisane w tej sekcji. Komputer musi też spełniać inne wymagania specyficzne dla systemu operacyjnego.

Wymagania dotyczące środowiska programistycznego

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

  • SDK Tools: minimalna wersja 17; zalecana wersja 26.1.1 lub nowsza
  • AVD: wymagana wersja Androida została opisana w tabeli poniżej.

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

Wymagania dotyczące rozszerzeń do wirtualizacji

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

  • Procesory Intel z technologią wirtualizacji Intel (VT-x, vmx)
  • Procesory AMD z AMD-V (SVM)
  • Krzem jabłkowy

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

Procesory Intel i AMD wymagają translacji 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 oferujące rozszerzenia wirtualizacji mogą nie obsługiwać tłumaczenia stron drugiego poziomu.

Jeśli nie wiesz, czy Twój procesor obsługuje wymagane rozszerzenia, zapoznaj się ze specyfikacją procesora w witrynie producenta. Jeśli Twój procesor nie obsługuje tych rozszerzeń, nie możesz używać akceleracji maszyn wirtualnych.

Ograniczenia

Przyspieszenie maszyn wirtualnych podlega tym ograniczeniom:

  • Nie możesz uruchomić emulatora akcelerowanego przez maszynę wirtualną w innej maszynie wirtualnej, takiej jak maszyna wirtualna hostowana przez VirtualBox, VMWare lub Docker. Musisz uruchomić emulator z akceleracją maszyn wirtualnych bezpośrednio na komputerze hosta.
  • W zależności od systemu operacyjnego i hipernadzorcy nie możesz uruchamiać oprogramowania korzystającego z innej technologii wirtualizacji w tym samym czasie, w którym uruchomisz emulator z akceleracją maszyn wirtualnych. Przykłady takich programów to m.in. rozwiązania maszyn wirtualnych, niektóre programy antywirusowe i kilka rozwiązań do zapobiegania oszustwom. Sytuację obserwuje się głównie w systemie Windows, gdy funkcja Hyper-V jest wyłączona. Większość takiego oprogramowania może bez problemów współistnieć z emulatorem Androida. Gdy jednak wystąpią konflikty, zalecamy, aby nie uruchamiać emulatora z akceleracją maszyn wirtualnych w tym samym czasie z takim oprogramowaniem.

Informacje o hipernadzorcach

Przyspieszenie maszyn wirtualnych wymaga hipernadzorcy, czyli narzędzia, które korzysta z rozszerzeń wirtualizacji dostarczanych przez procesor komputera.

Bez hipernadzorcy i akceleratora maszyn wirtualnych emulator musi przetłumaczyć kod maszyny z bloku maszyny wirtualnej według bloku, aby dostosować ją do architektury komputera hosta. Ten proces może przebiegać dość wolno. Jeśli maszyna wirtualna i architektura komputera hosta są zgodne, emulator może za jego pomocą uruchamiać kod bezpośrednio w procesorze hosta. To ulepszenie znacznie zwiększa szybkość i wydajność emulatora.

Optymalny hipernadzorca zależy od systemu operacyjnego i konfiguracji komputera. Więcej informacji znajdziesz w jednej z tych sekcji:

Sprawdzanie, czy jest zainstalowany hipernadzorca

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

Poniższe przykłady pokazują, jak używać opcji accel-check emulatora. 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.0) is installed and usable.
accel
W systemie Windows dostępnych jest wiele opcji hipernadzorcy. To, co widzisz, może się różnić od tego przykładu. Na przykład w komunikacie możesz zobaczyć jedno z tych słów kluczowych: GVM(wcześniej AEHD), WHPX, HAXM.

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

Akceleracja maszyn wirtualnych w systemie Windows może korzystać z jednego z trzech hipernadzorców:

  • Sterownik hipernadzorcy emulatora Androida (AEHD)
  • Windows Hypervisor Platform (WHPX)
  • program Hardware Accelerated Execution Manager (HAXM)

Wybierz hipernadzorcę w systemie Windows

W tej sekcji przedstawiamy kryteria decydujące o tym, którego hipernadzorcy należy użyć. Proces konfigurowania akceleracji maszyn wirtualnych za pomocą każdego hipernadzorcy został opisany w kolejnych sekcjach.

Od emulatora w wersji 33.x.x.x technologia HAXM jest wycofywana, ponieważ Intel rezygnuje z projektowania HAXM. Sterownik hipervisor emulatora Androida (AEHD) zastępuje Intel HAXM na procesorach Intel.

Kryteria (emulator 33.x.x.x i nowsze wersje) Hipernadzorca
Nie musisz uruchamiać Hyper-V jednocześnie z emulatorem Androida. Użyj sterownika hipernadzorcy emulatora Androida.
Musisz uruchomić funkcję Hyper-V jednocześnie z emulatorem Androida. Użyj WHPX.

W przypadku emulatora w wersji 32.x.x.x i starszych postępuj zgodnie ze starymi kryteriami, aby wybrać hipernadzorcę.

Kryteria (emulator 32.x.x.x i starsze) Hipernadzorca
Masz procesor Intel i nie musisz uruchamiać Hyper-V jednocześnie z emulatorem Androida. Używaj Intel HAXM.
Masz procesor AMD i nie musisz uruchamiać Hyper-V jednocześnie z emulatorem Androida. Użyj sterownika hipernadzorcy emulatora Androida.
Masz procesor Intel lub AMD i musisz korzystać z technologii Hyper-V jednocześnie z emulatorem Androida. Użyj WHPX.

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

Przed zainstalowaniem i używaniem hipernadzorcy emulatora Androida Twój komputer musi spełniać następujące wymagania:

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

  • W systemach Windows 11, Windows 10 lub Windows 8 musisz wyłączyć Hyper-V w oknie funkcji systemu Windows.

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

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

Aby zainstalować pakiet z poziomu SDK Manager, wykonaj te czynności:

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

    AEHD 2.1 lub nowsze

    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 niższe

    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żna też pobrać z GitHuba i zainstalować. Po rozpakowaniu pakietu sterowników uruchom silent_install.bat z poziomu wiersza poleceń z uprawnieniami administratora.

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

AEHD 2.1 lub nowsze

   sc stop aehd
   sc delete aehd

AEHD 2.0 lub niższe

   sc stop gvm
   sc delete gvm

Skonfiguruj akcelerację maszyn wirtualnych za pomocą technologii Intel HAXM w systemie Windows

Aby można było zainstalować kartę Intel HAXM i z niej korzystać, komputer musi spełniać te wymagania:

  • Procesor Intel z technologią wirtualizacji (VT-x), Intel EM64T (Intel 64) i włączoną funkcją Execute Disable (XD) Bit
  • Windows 11, Windows 10, Windows 8 lub Windows 7 (albo wersja 32-bitowa z procesorem 64-bitowym)
  • W systemach Windows 11, Windows 10 i Windows 8 należy wyłączyć Hyper-V w oknie funkcji systemu Windows.

Aby zainstalować sterownik Intel HAXM, wykonaj te czynności:

  1. Otwórz Menedżera SDK.
  2. Kliknij kartę Witryny aktualizacji pakietu SDK i wybierz Intel HAXM.
  3. Kliknij OK.
  4. Po zakończeniu pobierania uruchom instalator.

    Instalatora możesz zwykle znaleźć w tej lokalizacji: sdk\extras\intel\Hardware_Accelerated_Execution_Manager\intelhaxm-android.exe

  5. Dokończ instalację, korzystając z kreatora.

  6. Po zainstalowaniu Intel HAXM sprawdź, czy sterownik wirtualizacji działa prawidłowo, korzystając z tego polecenia wiersza poleceń:

    sc query intelhaxm
    

    Komunikat o stanie zawiera następujące informacje:

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

Więcej informacji znajdziesz w instrukcjach instalacji karty Intel HAXM w systemie Windows.

Aby odinstalować Intel HAXM, użyj instalatora lub Panelu sterowania systemu Windows. Zanim odinstalujesz Intel HAXM, zamknij wszystkie uruchomione emulatory x86.

Konfigurowanie akceleracji maszyn wirtualnych za pomocą platformy Windows Hypervisor

Aby można było włączyć WHPX, komputer musi spełniać następujące 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.

Sprawdź, kiedy wyłączasz Hyper-V.

Aby korzystać ze sterownika hipernadzorcy emulatora Androida lub procesora Intel HAXM, musisz wyłączyć Hyper-V. Jednak odznaczenie opcji „Hyper-V” w oknie Funkcje systemu Windows nie gwarantuje, że funkcja Hyper-V zostanie wyłączona.

Wiele funkcji systemu Windows 10 domyślnie włącza Hyper-V. Użytkownicy mogą nawet nie wiedzieć, że funkcja Hyper-V jest aktywna po włączeniu jednej z tych funkcji. Do tych funkcji należą:

  • Platforma maszyny wirtualnej
  • Platforma Windows Hypervisor
  • Piaskownica Windows
  • Izolacja rdzeni
  • Ochrona danych logowania

Dodatkowo podsystem Windows dla systemu Linux w wersji 2 wymaga platformy maszyny wirtualnej, co oznacza, że domyślnie wymaga korzystania z funkcji Hyper-V. Ta lista nie jest wyczerpująca. Jeśli znajdziesz element, który należy tu uwzględnić, zgłoś błąd.

Dokładnie sprawdź, czy wymienione funkcje są też wyłączone po wyłączeniu funkcji Hyper-V. Aby dowiedzieć się, jak wyłączyć poszczególne funkcje, zapoznaj się z dokumentacją firmy Microsoft i przykładami poniżej.

Niektóre platformy nie wyłączają od razu funkcji Hyper-V po jej wyłączeniu. W takim przypadku system Windows nie zwraca żadnych błędów, a funkcja Hyper-V jest wyłączona w oknie funkcji systemu Windows. Gdy tak się stanie, zgłoś błąd w narzędziu Microsoft do śledzenia problemów.

Skonfiguruj akcelerację maszyn wirtualnych w systemie macOS

W systemie macOS emulator Androida korzysta z wbudowanego funkcji Hypervisor.Framework, która wymaga systemu macOS 10.10 (Yosemite) lub nowszego.

Skonfiguruj akcelerację maszyn wirtualnych w systemie Linux

Systemy oparte na systemie Linux obsługują akcelerację maszyn wirtualnych za pomocą pakietu oprogramowania KVM. Postępuj zgodnie z instrukcjami instalowania KVM w systemie Linux, a następnie sprawdź, czy jest on włączony. Jeśli masz system Ubuntu, przeczytaj o instalacji KVM Ubuntu.

Wymagania

Uruchomienie KVM wymaga określonych uprawnień użytkownika. Sprawdź, czy masz wystarczające uprawnienia określone w instrukcjach instalacji KVM.

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

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

Sprawdź, czy KVM jest obecnie zainstalowane w Linuksie

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żyć 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 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 widzisz ten błąd, oznacza to, że nadal możesz uruchamiać maszyny wirtualne. Jednak bez rozszerzeń KVM Twoja maszyna wirtualna będzie wolniejsza.

    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:

Kosmiczna wersja (18.10) lub nowsza:

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

Lucid (10.04) lub nowszy:

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

Karmic (9.10) lub wcześniej:

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