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:
- Otwórz Menedżera AVD.
- Utwórz nowy AVD lub edytuj istniejący.
- W oknie Zweryfikuj konfigurację znajdź sekcję Wydajność emulowana.
- Wybierz wartość opcji Grafika:.
- 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 opcjiswiftshader_indirect
lubangle_indirect
.swiftshader_indirect
: użyj zgodnej z szybkim rozruchem wariantu SwiftShader, aby renderować grafikę za pomocą akceleracji programowej. Jest to dobra alternatywa dla trybuhost
, 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 trybuhost
, gdy komputer nie obsługuje akceleracji sprzętowej. W większości przypadków wydajność ANGLE jest podobna do działania trybuhost
, 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 zasadyswiftshader_indirect
.angle
: wycofano w wersji 27.0.2. Używaj w zamianangle_indirect
(tylko Windows).mesa
: wycofano w wersji 25.3. Użyj w zamian zasadyswiftshader_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:
- Konfigurowanie akceleracji maszyn wirtualnych w systemie Windows
- Konfigurowanie akceleracji maszyn wirtualnych w systemie macOS
- Konfigurowanie akceleracji maszyn wirtualnych w systemie Linux
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. accelW 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:
- Kliknij Narzędzia > Menedżer pakietów SDK.
- Kliknij kartę Narzędzia SDK i wybierz Hipernadzorca emulatora Androida.
- Kliknij OK, aby pobrać i zainstalować sterownik hipernadzorcy emulatora Androida.
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:
- Otwórz Menedżera SDK.
- Kliknij kartę Witryny aktualizacji pakietu SDK i wybierz Intel HAXM.
- Kliknij OK.
Po zakończeniu pobierania uruchom instalator.
Instalatora możesz zwykle znaleźć w tej lokalizacji:
sdk\extras\intel\Hardware_Accelerated_Execution_Manager\intelhaxm-android.exe
Dokończ instalację, korzystając z kreatora.
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:
- Procesory Intel: obsługa technologii wirtualizacji (VT-x), rozszerzonych tabel stron (EPT) i unlimited Guest (UG). VT-x musi być włączony w ustawieniach BIOS-u.
- Procesory AMD: zalecany jest procesor AMD Ryzen. W ustawieniach BIOS komputera musisz włączyć wirtualizację lub SVM.
- Android Studio 3.2 w wersji beta 1 lub nowszej
- 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.
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
:
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.
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