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żytkownika na 2 główne sposoby:
- Akceleracja grafiki zapewniająca lepsze renderowanie ekranu
- Akceleracja maszyn wirtualnych w celu zwiększenia szybkości wykonywania
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 AVD Managerze
Aby skonfigurować akcelerację grafiki na potrzeby AVD, wykonaj te czynności:
- Otwórz Menedżera urządzeń.
- Utwórz nowy AVD lub edytuj istniejący.
- W oknie Konfiguracja znajdź sekcję Emulowana wydajność na karcie Dodatkowe ustawienia.
- Wybierz wartość opcji Akceleracja grafiki.
- 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żywanie 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 trybuhost
, jeśli Twój 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żywaj zasadyswiftshader_indirect
.angle
: wycofane w wersji 27.0.2. Zamiast niej używaj zasadyswiftshader_indirect
.mesa
: wycofane w wersji 25.3. Zamiast niej używaj zasadyswiftshader_indirect
.guest
: wycofane w przypadku interfejsów API na poziomie 28 i wyższym. Zamiast niej używaj zasadyswiftshader_indirect
.angle_indirect
: wycofane w wersji 34.2.14. Zamiast niej używaj zasadyswiftshader_indirect
.
Konfigurowanie akceleracji maszyn wirtualnych
Akceleracja maszyny wirtualnej wykorzystuje procesor komputera, aby znacznie zwiększyć szybkość działania emulatora. Narzędzie o nazwie hipernadzorca 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. Tłumaczenia stron drugiego poziomu mogą nie być dostępne tylko w przypadku procesorów Intel lub AMD pierwszej generacji, które oferują rozszerzenia wirtualizacji.
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. 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. To ulepszenie 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:
- Konfigurowanie akceleracji maszyny wirtualnej w systemie Windows
- Konfigurowanie akceleracji maszyny wirtualnej w systemie macOS
- Konfigurowanie akceleracji maszyn wirtualnych w systemie Linux
Sprawdzanie, czy hiperwizor jest zainstalowany
Za pomocą opcji wiersza poleceń emulatora -accel-check
możesz sprawdzić, czy na komputerze jest 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
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
Przyspieszenie maszyn wirtualnych w systemie Windows może korzystać z jednego z 2 hiperwizorów:
- Platforma Windows Hypervisor (WHPX)
- Sterownik hipernadzorcy Android Emulator (AEHD)
Platforma Windows Hypervisor korzysta z dostarczonego przez system Windows hiperwizora Hyper-V i zapewnia najlepszą kompatybilność przy mniejszej niestabilności. Jeśli to możliwe, używaj WHPX.
Jeśli Twój system nie obsługuje WHPX lub masz inne obawy dotyczące jego używania, możesz skorzystać z sterownika funkcji Hypervisor emulatora Androida.
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
- 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 ikonę Windows, aby otworzyć menu Start.
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ć.
Naciśnij klawisz Enter lub kliknij Włącz lub wyłącz funkcje systemu Windows, aby otworzyć panel sterowania.
Zaznacz pole obok opcji Windows Hypervisor Platform.
Kliknij OK.
Po zakończeniu instalacji uruchom ponownie komputer.
Konfigurowanie akceleracji maszyny wirtualnej za pomocą sterownika hiperwizora emulatora Androida (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 udzielać 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 Funkcje systemu Windows nie jest wybrana 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 ich potrzebujesz, 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 z Menedżera SDK, wykonaj te czynności:
- Wybierz Narzędzia > Menedżer SDK.
- Kliknij kartę SDK Tools i wybierz Sterownik hiperwizora Android Emulator.
- Kliknij OK, aby pobrać i zainstalować sterownik funkcji Hypervisor emulatora Androida.
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 ...
Poniższy 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 ...
Poniższy 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 nowsza
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. Android Studio może jednak 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 Linuksie, 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
:
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.
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ż korzystać z HAXM. Jeśli wcześniej używasz tej funkcji, musisz zainstalować nowy sterownik hiperwizora. 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 pakietu SDK w Android Studio, przejdź na kartę „SDK Tools” (Narzędzia pakietu SDK), a następnie znajdź wiersz „Intel x86 Emulator Accelerator (HAXM installer) - Deprecated” (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ć to 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 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ń
Zatrzymaj usługę Intel HAXM, uruchamiając polecenie „sc stop intelhaxm”. Powinny się wyświetlić te dane wyjściowe.
Usuń usługę Intel HAXM, wpisując „sc delete intelhaxm”. Powinny się wyświetlić te dane wyjściowe.
Przejdź do sekcji 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.