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:
- Otwórz Menedżera AVD.
- Utwórz nowy średni czas oglądania lub edytuj istniejący.
- W oknie Weryfikacja konfiguracji znajdź sekcję Emulowana wydajność.
- Wybierz wartość w opcji Grafika:.
- 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 opcjiswiftshader_indirect
lubangle_indirect
.swiftshader_indirect
: do renderowania grafiki za pomocą akceleracji programowej użyj wariantu SwiftShader zgodnej z szybkim rozruchem. Ta opcja jest dobrym alternatywą dla trybuhost
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 trybuhost
w sytuacji, gdy komputer nie może korzystać z akceleracji sprzętowej. W większości przypadków działanie ANGLE jest podobne do trybuhost
, 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 zasadyswiftshader_indirect
.angle
: wycofane w wersji 27.0.2. Użyj w zamian zasadyangle_indirect
(tylko Windows).mesa
: wycofane w wersji 25.3. Użyj w zamian zasadyswiftshader_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:
- Konfigurowanie akceleracji maszyn wirtualnych w systemie Windows
- Konfigurowanie akceleracji maszyn wirtualnych w systemie macOS
- Konfigurowanie akceleracji maszyn wirtualnych w systemie Linux
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. accelW 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:
- Procesory Intel: obsługa technologii wirtualizacji (VT-x), rozszerzonych tabel stron (EPT) i nieograniczonego dostępu do gości (UG). VT-x musi być włączone w ustawieniach BIOS komputera.
- Procesory AMD: zalecany procesor AMD Ryzen. W ustawieniach BIOS komputera musi być włączona wirtualizacja lub SVM.
- Android Studio 3.2 Beta 1 lub nowsza wersja
- Emulator Androida w wersji 27.3.8 lub nowszej
- Windows 10 lub nowszy
Aby zainstalować WHPX w systemie Windows, wykonaj te czynności:
- Na pulpicie systemu Windows kliknij prawym przyciskiem myszy ikonę systemu Windows i wybierz Aplikacje i funkcje.
- W sekcji Powiązane ustawienia kliknij Programy i funkcje.
- Kliknij Włącza lub wyłącza funkcje systemu Windows.
Wybierz Windows Hypervisor Platform.
Kliknij OK.
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:
- Wybierz Narzędzia > Menedżer SDK.
- Kliknij kartę Narzędzia SDK i wybierz Sterownik hipernadzorcy emulatora Androida.
- Kliknij OK, aby pobrać i zainstalować sterownik hipernadzorcy emulatora Androida.
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
:
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.
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ń
Zatrzymaj usługę Intel HAXM, uruchamiając polecenie „sc stop intelhaxm”. Powinny wyświetlić się następujące dane wyjściowe.
Usuń usługę Intel HAXM, wykonując polecenie „sc delete intelhaxm”. Powinny się wyświetlić poniższe dane wyjściowe.
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.