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 urządzenia 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 grafiki zapewniająca lepsze renderowanie ekranu
  • przyspieszenie maszyny wirtualnej w celu zwiększenia szybkości wykonywania zadań,

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 znajdziesz informacje o tym, jak skonfigurować grafikę i akcelerację maszyny wirtualnej, aby zwiększyć wydajność emulatora.

Konfigurowanie akceleracji grafiki

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 procesora graficznego) w celu przyspieszenia renderowania. Akceleracja sprzętowa jest zalecana ze względu na wydajność, ale jeśli Twój komputer nie jest zgodny z nią z powodu obsługi sterowników graficznych lub brakujących wymagań dotyczących obrazu systemu, może być konieczne użycie trybu oprogramowania.

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ć akceleracji sprzętowej czy programowej, na podstawie konfiguracji komputera. Możesz też zastąpić to ustawienie, jeśli uruchomisz emulator z wiersza poleceń.

Konfigurowanie akceleracji grafiki w Menedżerze AVD

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

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

Konfigurowanie akceleracji grafiki z poziomu wiersza poleceń

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

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

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

  • auto: pozwól emulatorowi wybrać między akceleracją sprzętową a programową na podstawie AVD, konfiguracji komputera i danych dotyczących jakości.
  • host: używaj procesora graficznego na komputerze do akceleracji sprzętowej. Ta opcja zwykle zapewnia najwyższą jakość grafiki i wydajność emulatora, a w systemie macOS może włączyć MoltenVK, aby przyspieszyć renderowanie Vulkan. Jeśli jednak wystąpią problemy z emulacją grafiki, może być konieczne przełączenie się na renderowanie programowe.
  • swiftshader_indirect: używaj wariantu SwiftShader zgodnego z szybkim rozruchem, aby renderować grafikę za pomocą akceleracji programowej. Ta opcja jest dobrą alternatywą dla trybu host, jeśli komputer nie może używać akceleracji sprzętowej.

Te opcje mode nie są już używane:

  • swiftshader: wycofane w wersji 27.0.2. Zamiast niej użyj zasady swiftshader_indirect.
  • angle: wycofane w wersji 27.0.2. Zamiast niej użyj zasady swiftshader_indirect.
  • mesa: wycofane w wersji 25.3. Zamiast niej użyj zasady swiftshader_indirect.
  • guest: przestarzałe w przypadku interfejsów API na poziomie 28 i wyższym. Zamiast niej użyj zasady swiftshader_indirect.
  • angle_indirect: wycofane w wersji 34.2.14. Zamiast niej użyj zasady swiftshader_indirect.

Konfigurowanie akceleracji maszyn wirtualnych

Akceleracja maszyny wirtualnej wykorzystuje procesor komputera, aby znacznie zwiększyć szybkość działania emulatora. Narzędzie o nazwie hiperwizor zarządza tą interakcją za pomocą rozszerzeń wirtualizacji, które zapewnia procesor komputera. W tej sekcji opisujemy wymagania dotyczące korzystania z akceleracji maszyn wirtualnych oraz sposób konfigurowania akceleracji maszyn wirtualnych w poszczególnych systemach operacyjnych.

Ogólne wymagania

Aby korzystać z akceleracji maszyn wirtualnych w emulatorze, komputer musi spełniać ogólne wymagania podane w tej sekcji. Komputer musi też spełniać inne wymagania, które są specyficzne dla Twojego systemu operacyjnego.

Wymagania dotyczące środowiska programistycznego

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

  • Narzędzia SDK: minimalna wersja 17; 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 systemu x86 lub x86_64 dla Androida 2.3.3 (poziom interfejsu API 10) i nowszych wersji.
    ARM64 Obrazy systemu arm64-v8a dla Androida 5.0 (poziom interfejsu API 21) i nowszych wersji

Wymagania dotyczące rozszerzeń wirtualizacji

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

  • Procesory Intel z technologią wirtualizacji Intel (VT-x, vmx), takie jak procesory 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 tłumaczenie adresów drugiego poziomu. Tylko procesory Intel lub AMD pierwszej generacji, które oferują rozszerzenia wirtualizacji, mogą nie mieć tłumaczeń 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 Twój procesor nie obsługuje tych rozszerzeń, nie możesz używać akceleracji maszyn wirtualnych.

Ograniczenia

Akceleracja maszyn wirtualnych ma te ograniczenia:

  • Nie możesz uruchomić emulatora z akceleracją maszyny wirtualnej w innej maszynie wirtualnej, np. w maszynie wirtualnej hostowanej przez VirtualBox, VMWare lub Docker. Musisz uruchomić emulator z akceleracją VM bezpośrednio na komputerze hosta.
  • W zależności od systemu operacyjnego i hiperwizora nie możesz uruchamiać oprogramowania, które korzysta z innej technologii wirtualizacji, w tym samym czasie co emulator z akceleracją VM. Przykłady takiego oprogramowania to m.in. rozwiązania wirtualnych maszyn, niektóre programy antywirusowe i kilka rozwiązań zapobiegających oszustwom. Sytuacja ta 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. Jeśli jednak wystąpią konflikty, nie zalecamy uruchamiania emulatora z akceleracją VM w tym samym czasie co takie oprogramowanie.

Informacje o hipernadzorcach

Akceleracja maszyn wirtualnych wymaga hiperwizora, czyli narzędzia, które korzysta z rozszerzeń wirtualizacji udostępnianych przez procesor komputera.

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

Hiperwizor, który będzie dla Ciebie najlepszy, zależy od systemu operacyjnego i konfiguracji komputera. Więcej informacji znajdziesz w jednej z tych sekcji:

Sprawdzanie, czy hiperwizor jest zainstalowany

Za pomocą opcji wiersza poleceń emulatora -accel-check możesz sprawdzić, czy na komputerze jest obecnie zainstalowany hiperwizor.

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

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 jest dostępnych kilka opcji funkcji Hypervisor. Dlatego to, co widzisz, może się różnić od tego, co jest pokazane na przykładzie. W wiadomości możesz na przykład zobaczyć 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 maszyn wirtualnych w systemie Windows

W systemie Windows zalecamy korzystanie z platformy funkcji Hypervisor systemu Windows (WHPX) dostarczanej przez firmę Microsoft, 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 Androida Studio.

Funkcja Windows Hypervisor Platform może nie być domyślnie włączona. W takich przypadkach włącz ją, wykonując czynności opisane w artykule Konfigurowanie akceleracji maszyny wirtualnej za pomocą platformy Windows Hypervisor. Po włączeniu tej funkcji może być konieczne ponowne uruchomienie urządzenia.

Konfigurowanie akceleracji maszyn wirtualnych za pomocą funkcji Windows Hypervisor Platform

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

  • Procesory Intel: obsługa technologii wirtualizacji (VT-x), rozszerzonych tabel stron (EPT) i funkcji nieograniczonego gościa (UG). VT-x musi być włączony w ustawieniach BIOS komputera.
  • Procesory AMD: zalecany procesor AMD Ryzen. Wirtualizacja lub SVM musi być włączona w ustawieniach BIOS komputera.
  • 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ę panel sterowania 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 akceleracji maszyny wirtualnej za pomocą sterownika hiperwizora Android Emulator (AEHD) w systemie Windows

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

  • Procesory Intel lub AMD z rozszerzeniem wirtualizacji.
  • 64-bitowy Windows 11 lub Windows 10 (32-bitowy 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. W takich przypadkach nie będziemy jednak zapewniać pomocy.

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

    Niektóre komponenty systemu Windows aktywują i używają hipernadzorcy Windows Hyper-V, nawet jeśli w oknie dialogowym Funkcje systemu Windows nie jest zaznaczona opcja Platforma funkcji Hypervisor systemu Windows. Obejmują one funkcje zabezpieczeń, takie jak Hyper-V, izolacja rdzenia i inne. (Pamiętaj, że funkcja Hyper-V NIE jest tym samym co funkcja hypervisor Hyper-V). Jeśli potrzebujesz tych funkcji, użyj WHPX.

Na procesorach AMD sterownik hiperwizora emulatora Androida można zainstalować za pomocą Menedżera SDK w Android Studio 4.0 Canary 5 lub nowszym.

Na procesorach Intel sterownik hiperwizora Emulatora Androida można zainstalować za pomocą Menedżera SDK w Android Studio Flamingo lub nowszym.

Aby zainstalować pakiet SDK za pomocą Menedżera SDK, wykonaj te czynności:

  1. Wybierz Narzędzia > Menedżer SDK.
  2. Kliknij kartę Narzędzia SDK i wybierz Sterownik hiperwizora Android Emulator.
  3. Kliknij OK, aby pobrać i zainstalować sterownik funkcji Hypervisor emulatora Androida.
  4. Po instalacji sprawdź, czy sterownik działa prawidłowo, używając tego polecenia:

    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 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
    

    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 funkcja Hyper-V nie jest wyłączona:

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

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

Odinstaluj sterownik hiperwizora 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 i starsze

   sc stop gvm
   sc delete gvm

Konfigurowanie akceleracji maszyn wirtualnych w systemie macOS

Na komputerach z systemem macOS emulator Androida korzysta z wbudowanego Hypervisor.Framework, który 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 Androida 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 Ubuntu KVM Installation (Instalacja KVM w Ubuntu).

Wymagania

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

Aby korzystać z akceleracji maszyn wirtualnych w systemie Linux, Twój komputer musi spełniać te wymagania:

  • W przypadku procesorów Intel: obsługa technologii wirtualizacji (VT-x), funkcji Intel EM64T (Intel 64) i funkcji Execute Disable (XD) Bit.
  • W przypadku procesorów AMD: obsługa wirtualizacji AMD (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. Wynik 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 Linuksie

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 nowszy:

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

Karmic (9.10) lub starsze:

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

Przewodnik odinstalowywania Intel HAXM

Funkcja HAXM jest przestarzała od dłuższego czasu (styczeń 2023 r.), ponieważ firma Intel zaprzestała jej rozwijania.

Od wersji 36.2.x.x emulator Androida nie będzie już używać funkcji HAXM. Jeśli wcześniej z niej korzystałeś(-aś), musimy zainstalować nowy sterownik hypervisora. Zalecamy korzystanie z platformy Windows Hypervisor Platform (WHPX) od Microsoftu.

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, wykonaj te czynności:

Sprawdzanie, czy Intel HAXM jest zainstalowany

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

   sc query intelhaxm

Jeśli Intel HAXM jest zainstalowany i działa, w danych wyjściowych polecenia powinien się wyświetlić ten komunikat:

Jeśli Intel HAXM jest zainstalowany, ale wyłączony, w danych wyjściowych polecenia powinien się pojawić 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, musisz przejść do następnego kroku.

Jeśli Intel HAXM nie jest zainstalowany, powinien pojawić się ten komunikat.

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

Jeśli w przeszłości zainstalowano HAXM za pomocą Menedżera SDK, moduł powinien być nadal widoczny na karcie „Narzędzia SDK”. Otwórz Menedżera SDK w Android Studio, przejdź na kartę „Narzędzia SDK”, a następnie znajdź wiersz „Akcelerator emulatora Intel x86 (instalator HAXM) – wycofany”. Powinien on wyglądać jak na zrzucie ekranu poniżej.

Odznacz pole wyboru, jak pokazano na tym zrzucie ekranu.

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

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

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

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

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

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

Deinstalator Intel HAXM powinien się uruchomić i wyświetlić wynik. Jeśli odinstalowanie się powiedzie, przejdź do sekcji Usuwanie pakietu instalacyjnego 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, wpisując „sc delete intelhaxm”. Powinny pojawić się te dane wyjściowe:

  3. Wejdź na stronę Usuwanie pakietu instalacyjnego Intel HAXM.

Usuń pakiet instalacyjny 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 pakietów SDK w Android Studio może nadal wyświetlać Intel HAXM jako „Zainstalowany”.

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