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

Urządzenia z Androidem używają OpenGL w systemach wbudowanych (OpenGL ES lub GLES) i interfejsów Vulkan API do renderowania grafiki na ekranie. Akceleracja grafiki umożliwia użycie sprzętu komputerowego (zwykle GPU) w celu przyspieszenia renderowania. Choć akceleracja sprzętowa jest zalecana do zwiększania wydajności, tryb oprogramowania może być wymagany, jeśli Twój komputer nie jest zgodny ze względu na obsługę sterownika graficznego lub brak wymagań dotyczących obrazu systemu.

Podczas tworzenia wirtualnego urządzenia z Androidem (AVD) w AVD Manager możesz określić, czy emulator ma używać renderowania sprzętowego czy programowego. W trybie automatycznym emulator decyduje, czy użyć akceleracji grafiki sprzętowej czy programowej, na podstawie komputera. To ustawienie możesz też zastąpić, uruchamiając emulator z wiersza poleceń.

Skonfiguruj akcelerację grafiki w menedżerze AVD

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

  1. Otwórz Menedżera urządzeń.
  2. Utwórz nowy średni czas oglądania lub edytuj istniejący.
  3. W oknie Konfiguracja na karcie Dodatkowe ustawienia znajdź sekcję Emulowana wydajność.
  4. Wybierz wartość opcji Przyspieszenie graficzne.
  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żna ustawić na jedną z tych opcji:

  • auto: pozwala emulatorowi wybrać akcelerację sprzętową lub programową na podstawie AVD, konfiguracji komputera i danych o jakości.
  • host: używaj GPU w komputerze do akceleracji sprzętowej. Ta opcja zapewnia zwykle najwyższą jakość grafiki i wydajność emulatora. Umożliwia też włączenie MoltenVK w systemie macOS na potrzeby przyspieszonego renderowania Vulkan. Jeśli jednak wystąpią problemy z emulacją grafiki, konieczne może być przełączenie się na renderowanie programowe.
  • 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.

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. Zamiast tego użyj swiftshader_indirect.
  • mesa: wycofane w wersji 25.3. Zamiast tego użyj swiftshader_indirect.
  • guest: wycofane w przypadku interfejsu API na poziomie 28 i nowszych. Użyj w zamian zasady swiftshader_indirect.
  • angle_indirect: wycofane w wersji 34.2.14. Użyj w zamian zasady swiftshader_indirect.

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 znajdziesz 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) 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 wybrane rozwiązania zapobiegające oszustwom. Sytuację tę obserwujemy głównie w systemie Windows z wyłączoną funkcją Hyper-V. Większość tego typu oprogramowania 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
WHPX(10.0.22631) 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: AEHD, GVM (wcześniejsza 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.

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)

Windows Hypervisor Platform korzysta z udostępnionej przez system Windows funkcji Hyper-V. Zapewnia największą zgodność przy zmniejszonej niestabilności. Jeśli to możliwe, używaj WHPX.

Jeśli Twój system nie obsługuje WHPX lub masz inne obawy związane z jego używaniem, możesz użyć sterownika emulatora Android Emulator Hypervisor.

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 ikonę systemu Windows, aby otworzyć menu Start.
  2. Na pasku wyszukiwania wpisz Włączanie i wyłączanie funkcji systemu Windows.

    Powinien wyświetlić się panel sterowania Włączanie i wyłączanie funkcji systemu Windows.

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

  4. Zaznacz pole 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.

  • Funkcje korzystające też z funkcji Windows Hyper-V Hypervisor muszą być wyłączone w oknie Funkcje systemu Windows.

    Niektóre komponenty systemu Windows również aktywują funkcję Windows Hyper-V i z niej korzystają, nawet jeśli Platforma Windows Hypervisor nie jest wybrana w oknie Funkcje systemu Windows. Obejmują one funkcje zabezpieczeń takie jak Hyper-V czy izolacja rdzeni. (Pamiętaj, że funkcja Hyper-V NIE działa tak samo jak funkcja Hyper-V). Jeśli potrzebujesz tych funkcji, użyj 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 kolejno 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 w wersji 2.1 lub nowszej

    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 w wersji 2.1 lub nowszej

   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.
  • W przypadku procesorów AMD: obsługa wirtualizacji AMD (AMD-V).

Sprawdź, czy w systemie Linux jest obecnie zainstalowana maszyna 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
    

    Oczekiwany wynik:

    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:

Cosmic (18.10) lub nowszy:

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 usługa 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 zainstalowano 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) - Unavailable (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ć te dane wyjściowe.

  3. Otwórz stronę 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.