Uruchamianie emulatora z poziomu wiersza poleceń

Pakiet Android SDK zawiera emulator urządzenia z Androidem – urządzenie wirtualne. który działa na Twoim komputerze. Emulator Androida pozwala tworzyć i testować aplikacji na Androida bez fizycznego urządzenia.

Na tej stronie opisujemy funkcje wiersza poleceń, których możesz używać z Emulator Androida. Informacje o korzystaniu z interfejsu emulatora Androida znajdziesz tutaj: Uruchamianie aplikacji przy użyciu emulatora Androida.

Uruchom emulator

Zamiast tego możesz uruchomić emulator przy użyciu polecenia emulator uruchomienie projektu lub w narzędziu AVD Manager.

Oto podstawowa składnia wiersza poleceń służąca do uruchamiania urządzenia wirtualnego z komunikat terminala:

emulator -avd avd_name [ {-option [value]} … ]

lub

emulator @avd_name [ {-option [value]} … ]

Jeśli na przykład uruchomisz emulator z poziomu Androida Studio działającego na Macu, domyślnym ustawieniem będzie wiersz poleceń będzie podobny do tego:

/Users/janedoe/Library/Android/sdk/emulator/emulator -avd Pixel8_API_34 -netdelay none -netspeed full -qt-hide-window -grpc-use-token -idle-grpc-timeout

Pamiętaj, że argumenty -qt-hide-window -grpc-use-token -idle-grpc-timeout służą tylko do uruchamiania okna emulatora w Android Studio. Jeśli chcesz uruchomić emulator w osobnym oknie, nie używaj tych dodatkowych parametrów.

Możesz określić opcje uruchamiania podczas uruchamiania emulatora, ale nie po jego uruchomieniu.

Aby wyświetlić listę nazw AVD, wpisz to polecenie:

emulator -list-avds

Użyj tej opcji, aby wyświetlić listę nazw AVD z katalogu głównego Androida. Domyślny katalog główny możesz zastąpić, ustawiając ANDROID_SDK_HOME zmienna środowiskowa określająca pierwiastek katalogu użytkownika, w którym przechowywana jest cała konfiguracja i zawartość AVD.

Możesz ją ustawić w oknie terminala przed uruchomieniem polecenia na urządzeniu wirtualnym lub w ustawieniach użytkownika systemu. na przykład w pliku .bashrc na Linuksie.

Aby zatrzymać emulator Androida, zamknij jego okno.

Instalowanie aplikacji

Oprócz zainstalowania aplikacji przy użyciu Android Studio lub emulatora UI, możesz zainstalować aplikację na urządzeniu wirtualnym za pomocą narzędzia adb.

Aby zainstalować, uruchomić i przetestować aplikację za pomocą narzędzia adb: wykonaj te ogólne czynności:

  1. Utwórz i spakuj aplikację w plik APK zgodnie z opisem w sekcji Tworzenie i uruchamianie
  2. Uruchom emulator z poziomu wiersza poleceń, zgodnie z opisem powyżej. przy użyciu wszelkich niezbędnych opcji uruchamiania.
  3. Zainstaluj aplikację za pomocą narzędzia adb.
  4. Uruchom i przetestuj aplikację w emulatorze.
    Emulator uruchomionych, możesz użyć emulatora w konsoli, aby w razie potrzeby uruchamiać polecenia.

Aby odinstalować aplikację, wykonaj te same czynności co na urządzeniu z Androidem.

Urządzenie wirtualne zachowuje aplikację i dane o jej stanie po ponownym uruchomieniu w partycji dysku danych użytkownika (userdata-qemu.img). Aby usunąć danych, uruchom emulator, używając opcji -wipe-data, lub wyczyść w narzędziu AVD Manager. Aby uzyskać więcej informacji o danych użytkownika partycji i innej pamięci masowej, zapoznaj się z sekcją poniżej.

Uwaga: narzędzie adb traktuje urządzenie wirtualne jako z faktycznego urządzenia fizycznego. Z tego powodu konieczne może być użycie funkcji flagę -d z niektórymi typowymi poleceniami adb, takimi jak install Flaga -d umożliwia określenie, która z tych opcji połączonych urządzeń, których chcesz używać w poleceniu. Jeśli nie określisz -d, emulator jest kierowany na pierwsze urządzenie na liście.

Informacje o domyślnych katalogach i plikach

Emulator wykorzystuje powiązane pliki, z których system AVD i katalogi danych są najważniejsze. Warto poznać strukturę katalogów emulatora i pliki przy określaniu opcji wiersza poleceń, ale zwykle nie trzeba musisz zmienić domyślne katalogi lub pliki.

Emulator Androida używa hipernadzorcy (QEMU).

Katalog systemu AVD

Katalog systemu zawiera obrazy systemu Android używane przez emulator aby symulować system operacyjny. Ten katalog zawiera pliki tylko do odczytu związane z platformą współużytkowane przez wszystkie narzędzia AVD tego samego typu, w tym na poziomie interfejsu API, architekturze procesora Wersja Androida. Domyślne lokalizacje to:

  • macOS i Linux – ~/Library/Android/sdk/system-images/android-apiLevel/variant/arch/
  • Windows – C:\Users\user\Library\Android\sdk\system-images\android-apiLevel\variant\arch\

Gdzie:

  • apiLevel to numeryczny poziom interfejsu API lub litera oznaczająca wersji przedpremierowych. Na przykład android-V wskazuje Androida Podgląd VanillaIceCream. W dniu premiery przeszedł on poziom API 35, wyznaczony przez android-35
  • variant to nazwa odnosząca się do konkretnych funkcji zaimplementowane za pomocą obrazu systemu. Na przykład google_apis lub android-wear
  • arch to docelowa architektura procesora. Przykład: x86

Użyj opcji -sysdir, aby określić inny katalog systemowy dla AVD.

Emulator odczytuje te pliki z katalogu systemowego:

Tabela 1. Pliki katalogu systemowego odczytywane przez Androida Emulator

Plik Opis Opcja wskazania innego pliku
kernel-qemu lub kernel-ranchu Plik binarny jądra systemu AVD. kernel-ranchu na podstawie: Emulator QEMU. -kernel
ramdisk.img Obraz partycji rozruchowej. To jest podzbiór danych system.img jest wstępnie wczytywany przez jądro przed zamontowaniem obrazu systemu. it zwykle zawiera tylko kilka plików binarnych i skryptów inicjujących. -ramdisk
system.img Wstępna wersja obrazu systemu, dostępna tylko do odczytu. Mówiąc konkretnie, partycja zawierająca biblioteki systemowe i dane odpowiadające poziomowi interfejsu API i wariant. -system
userdata.img Początkowa wersja partycji danych, wyświetlana jako data/ w emulowanym systemie i zawiera wszystkie dostępne do zapisu dane dla ŚR. Emulator używa tego pliku podczas tworzenia nowego AVD lub użycia Opcja: ‑wipe-data. Więcej informacji: Opis pliku userdata-qemu.img w następnej sekcji. -initdata
-init-data

Katalog danych AVD

Katalog danych AVD, nazywany również katalogiem treści, jest przeznaczony dla pojedynczą instancję AVD i zawiera wszystkie dane, które można modyfikować dla AVD.

Lokalizacja domyślna to ta, gdzie name to Nazwa AVD:

  • macOS i Linux – ~/.android/avd/name.avd/
  • Windows 10 lub nowszy – C:\Users\user\.android\name.avd\

Użyj opcji -datadir, aby określić inny katalog danych AVD.

Poniższa tabela zawiera najważniejsze pliki w tym katalogu:

Tabela 2. Ważne pliki w katalogu danych AVD

Plik Opis Opcja wskazania innego pliku
userdata-qemu.img

Zawartość partycji danych, która wyświetla się jako data/ w: z emulowanego systemu. Podczas tworzenia nowego AVD lub korzystania z -wipe-data do przywrócenia ustawień fabrycznych urządzenia AVD, emulator kopiuje plik userdata.img z katalogu systemowego do utworzyć ten plik.

Każda instancja urządzenia wirtualnego używa obrazu danych użytkownika z możliwością zapisu do przechowywania danych sesji. Wykorzystuje go np. do przechowywania danych zainstalowane dane, ustawienia, bazy danych i pliki aplikacji; Każdy użytkownik ma w innym katalogu ANDROID_SDK_HOME, w którym są przechowywane katalogi danych instancji Średnie okresy wyświetlania utworzone przez tego użytkownika. Każdy średni czas wyświetlania ma jeden parametr userdata-qemu.img .

-data
cache.img Obraz partycji pamięci podręcznej, który wyświetla się jako cache/ w z emulowanego systemu. Pole jest puste, gdy po raz pierwszy tworzysz średni czas oglądania lub używasz Opcja: -wipe-data. Są w nim przechowywane tymczasowe pliki pobierania i wypełnia menedżer pobierania, a czasami system. Na przykład parametr korzysta z niego do zapisywania w pamięci podręcznej pobranych stron internetowych i obrazów, podczas gdy emulator jest w domu. Gdy wyłączysz urządzenie wirtualne, plik zostanie usunięty. Dostępne opcje utrwalać plik przy użyciu opcji -cache. -cache
sdcard.img

(Opcjonalnie) Obraz partycji karty SD, który pozwala symulować kartę SD na urządzeniu wirtualnym. Plik obrazu karty SD można utworzyć w programie AVD Menedżer lub mksdcard . Plik jest przechowywany na Twoim komputerze programistycznym i musi być wczytany tutaj: podczas uruchamiania.

Podczas definiowania AVD w menedżerze AVD możesz wybrać aby użyć automatycznie zarządzanego pliku karty SD lub pliku utworzonego narzędzie mksdcard. Możesz wyświetlić plik sdcard.img powiązane z AVD w aplikacji AVD Manager. Opcja -sdcard zastępuje plik karty SD określony w AVD. Pamiętaj, że ta opcja karty SD nie działa na Macu z silnikiem Apple Silicon.

Możesz przeglądać i wysyłać pliki do symulowanej jakości SD, a także kopiować i usuwać je z niej za pomocą interfejsu emulatora lub interfejsu adb. , gdy urządzenie wirtualne jest uruchomione. Nie można usunąć symulowanej jakości SD. z uruchomionego urządzenia wirtualnego.

Aby skopiować pliki do pliku na karcie SD przed jego wczytaniem, podłącz obraz zapisać pliki w pętli, a następnie skopiować je. Możesz też użyć narzędzia – takiego jak mtools, aby skopiować pliki bezpośrednio do obrazu.

Emulator traktuje plik jako pulę bajtów, więc format karty SD nie sprawa.

Opcja -wipe-data nie ma wpływu na ten plik. Jeśli jeśli chcesz usunąć ten plik, usuń go, a następnie utwórz ponownie, używając w narzędziu AVD Manager lub mksdcard. Zmiana rozmiaru pliku usuwa też plik i tworzy nowy plik.

-sdcard

Wyświetl listę katalogów i plików używanych przez emulator

Możesz sprawdzić lokalizację plików na 2 sposoby:

  • Użyj -verbose lub -debug init, gdy uruchamiasz emulator z wiersza poleceń. Spójrz na dane wyjściowe.
  • Użyj polecenia emulator -help-option, aby: określ katalog domyślny. Na przykład:
    emulator -help-datadir
    Use '-datadir <dir>' to specify a directory where writable image files will be searched. On this system, the default directory is: /Users/me/.android See '-help-disk-images' for more information about disk image files.

Opcje uruchamiania wiersza poleceń

W tej sekcji znajdziesz opcje, które możesz udostępnić w wierszu poleceń po uruchomieniu za pomocą emulatora.

Uwaga: emulator Androida jest wciąż rozwijany, i zwiększyć wiarygodność systemu. Stan zgłoszonych problemów z różnymi opcjami wiersza poleceń oraz zgłaszać błędy, zapoznaj się z Android Issue Tracker.

Często używane opcje

W poniższej tabeli znajdziesz opcje uruchamiania wiersza poleceń, których możesz używać częściej:

Tabela 3. Często używane opcje wiersza poleceń

Opcja wiersza poleceń Opis
Szybkie uruchamianie
-no-snapshot-load Przeprowadza „na zimno” i zapisuje stan emulatora przy zamykaniu.
-no-snapshot-save Wykonuje szybki rozruch, jeśli to możliwe, ale nie zapisuje stanu emulatora przy zamykaniu.
-no-snapshot Całkowicie wyłącza funkcję szybkiego uruchamiania i nie wczytuje ani nie zapisuje stanu emulatora.
Sprzęt
-camera-back mode
-camera-front mode
Ustawia tryb emulacji dla aparatu skierowanego do przodu lub do tyłu. Spowoduje to zastąpienie wszystkich ustawień kamery w AVD.

mode może mieć dowolną z tych wartości:

  • emulated – emulator symuluje działanie kamery w oprogramowaniu.
  • webcamn – emulator używa kamery internetowej podłączonej do komputera programistycznego, który określa numer. Aby zobaczyć listę kamer internetowych, użyj Opcja: -webcam-list. Na przykład: webcam0.
  • none – wyłącza kamerę na urządzeniu wirtualnym.

Na przykład:

emulator @Pixel8_API_34 -camera-back webcam0
-webcam-list Zawiera listę kamer internetowych na Twoim komputerze programistycznym, które są dostępne do emulacji. Dla: przykład:
emulator @Pixel8_API_34 -webcam-list
        List of web cameras connected to the computer:
        Camera 'webcam0' is connected to device 'webcam0'
        on channel 0 using pixel format 'UYVY'

W tym przykładzie pierwszy element webcam0 to nazwa użyta w wierszu poleceń. Drugi element webcam0 to nazwa używana przez system operacyjny na komputerze programistycznym. Druga nazwa zależy od systemu operacyjnego.

Od wersji SDK Tools 25.2.4 wymagana jest nazwa AVD.

Obrazy na dysku i pamięć
-memory size

Określa rozmiar fizycznej pamięci RAM, od 1536 do 8192 MB. Na przykład:

emulator @Pixel8_API_34 -memory 2048

Ta wartość zastępuje ustawienie AVD.

-sdcard filepath Określa nazwę pliku i ścieżkę do pliku graficznego partycji karty SD. Dla: przykład:

emulator @Pixel8_API_34 -sdcard C:/sd/sdcard.img

Jeśli plik nie zostanie znaleziony, emulator będzie się uruchamiał, ale bez karty SD. Polecenie zwraca ostrzeżenie Brak obrazu karty SD.

Jeśli nie określisz tej opcji, domyślna wartość to sdcard.img. w katalogu danych, chyba że AVD określa coś innego. Informacje o emulowanych kartach SD znajdziesz w katalogu danych AVD.

-wipe-data Usuwa dane użytkownika i kopiuje je z początkowego pliku danych. Ta opcja usuwa dane urządzenia wirtualnego i przywraca je do stanu z tego samego stanu gdy ją zdefiniowano. Zostaną usunięte wszystkie zainstalowane aplikacje i ustawienia. Na przykład:

emulator @Pixel8_API_34 -wipe-data

Domyślnie plik danych użytkownika ma format userdata-qemu.img i pierwszy plik plik danych to userdata.img. Oba te pliki znajdują się w katalogu danych. Opcja -wipe-data nie ma wpływu na sdcard.img . Więcej informacji o danych użytkownika znajdziesz w sekcji Omówienie domyślnych katalogów i plików.

Debuguj
-debug tags Włącza lub wyłącza wyświetlanie komunikatów debugowania dotyczących jednego lub większej liczby tagów. Kolejne tagi rozdziel spacją, przecinkiem lub kolumną. Na przykład:

$ emulator @Pixel8_API_34 -debug init,metrics

Aby wyłączyć tag, umieść przed nim łącznik (-). Na przykład: pozwala wyświetlić wszystkie komunikaty debugowania oprócz tych związanych z gniazdami sieciowymi i dane:

-debug all,-socket,-metrics

Listę tagów i opisów znajdziesz tutaj: -help-debug-tags . Na przykład:

emulator -help-debug-tags

Domyślne tagi debugowania możesz zdefiniować w sekcji ANDROID_VERBOSE zmiennej środowiskowej. Zdefiniuj listę tagów, których chcesz użyć, rozdzielaną przecinkami. Oto przykład, który pokazuje, jak określić socket oraz Tagi (gles):

ANDROID_VERBOSE=socket,gles

Jest to odpowiednik użycia:

-debug-socket -debug-gles

lub

-debug socket,gles

-debug-tag
-debug-no-tag
Włącza określony typ komunikatu debugowania. Użyj formularza no, aby wyłączyć typ wiadomości debugowania. Na przykład:

emulator @Pixel8_API_34 -debug-all -debug-no-metrics

Aby wyświetlić listę tagów, użyj polecenia emulator -help-debug-tags.

-logcat logtags Włącza wyświetlanie komunikatów Logcat w przypadku co najmniej jednego tagu i zapisu i przekaż je do okna terminala. Na przykład poniższe polecenie włącza błędy wiadomości ze wszystkich komponentów:

emulator @Pixel8_API_34 -logcat *:e

Pole logtags używa tego samego formatu co polecenie adb logcat logtags. Wpisz adb logcat -help, aby dodać więcej i informacjami o nich. To lista rozdzielonych spacjami filtrów dziennika w formacie componentName:logLevel componentName jest symbolem wieloznacznym (*) lub nazwą komponentu, taką jak ActivityManager, SystemServer, InputManager, lub WindowManager.

logLevel jest jedną z tych wartości:

  • v – szczegółowy
  • d – debugowanie
  • i – informacje
  • w – poziom logu ostrzeżenia
  • e – błąd
  • s – tryb cichy

W poniższym przykładzie wyświetlane są komunikaty komponentów GSM z informacjami poziom rejestrowania:

emulator @Pixel8_API_34 -logcat '*:s GSM:i'

Jeśli nie podasz opcji -logcat w wierszu poleceń, emulator wyszukuje ANDROID_LOG_TAGS. zmiennej środowiskowej. Jeśli ANDROID_LOG_TAGS jest zdefiniowany za pomocą prawidłowej wartości logtags i nie jest pusta, emulator użyje tej wartości , aby domyślnie włączyć dane wyjściowe Logcat w terminalu. Możesz też przekierować takich samych lub innych komunikatów logu do terminala za pomocą funkcji adb.

Więcej informacje na temat Logcat i adb, patrz Logcat narzędzie wiersza poleceń, Wyświetlanie i pisanie logi za pomocą Logcat, Log class i Issue adb .

-show-kernel Wyświetla komunikaty debugowania jądra w oknie terminala. Na przykład:

emulator @Pixel8_API_34 -show-kernel

Jednym z przykładów zastosowania tej opcji jest sprawdzenie, czy proces uruchamiania działa prawidłowo.

-verbose Drukuje komunikaty o inicjowaniu emulatora w oknie terminala. Dla: przykład:

emulator @Pixel8_API_34 -verbose

Wyświetlane są w nim pliki i ustawienia, które są rzeczywiście wybierane podczas uruchamiania urządzenia wirtualnego w AVD. Ta opcja jest taka sama jak określenie -debug-init

Sieć
-dns-server servers Używa określonych serwerów DNS. servers to rozdzielana przecinkami lista maksymalnie czterech nazw serwerów DNS lub adresów IP. Dla: przykład:
emulator @Pixel8_API_34 -dns-server 192.0.2.0,
192.0.2.255

Domyślnie emulator próbuje wykryć używane serwery DNS i ustawia Możesz utworzyć specjalne aliasy w emulowanej sieci zapory sieciowej, aby umożliwić systemowi Android bezpośrednio do serwerów. Użyj opcji -dns-server, aby określić inną listę serwerów DNS.

-http-proxy proxy Łączy wszystkie połączenia TCP przez określony serwer proxy HTTP/HTTPS. Jeśli musi uzyskać dostęp do internetu przez serwer proxy. Możesz użyć tego lub zmienną środowiskową http_proxy do skonfigurowania odpowiednie przekierowanie. Na przykład:

emulator @Pixel8_API_34 -http-proxy myserver:1981

proxy może być jednym z :

http://server:port
http://username:password@server:port

Prefiks http:// może zostać pominięty.

Jeśli ta opcja nie zostanie podana, emulator wyszuka http_proxy i automatycznie używa dowolnej wartości pasującej do argumentu Format proxy. Więcej informacji znajdziesz w sekcji Korzystanie z usługi z emulatorem i serwerem proxy.

-netdelay delay

Ustawia emulację opóźnienia sieci na jedną z tych opcji Wartości delay w milisekundach:

  • gsm – GSM/CSD (min. 150, maks. 550).
  • hscsd – HSCSD (min. 80, maks. 400).
  • gprs – GPRS (min. 35, maks. 200).
  • edge – EDGE/EGPRS (min. 80, maks. 400).
  • umts – UMTS/3G (min. 35, maks. 200).
  • hsdpa – HSDPA (min. 0, maks. 0).
  • lte – LTE (min. 0, maks. 0).
  • evdo – EVDO (min. 0, maks. 0).
  • none – brak czasu oczekiwania, wartość domyślna (min. 0, maks. 0).
  • num – określa dokładny czas oczekiwania.
  • min:max – określa indywidualne minimum i maksymalnych opóźnień.

Na przykład:

emulator @Pixel8_API_34 -netdelay gsm

Emulator obsługuje ograniczanie przepustowości sieci oraz większe opóźnienia połączeń. Możesz go zdefiniować przez konfigurację motywu lub Opcje: ‑netspeed i -netdelay.

-netfast Wyłącza ograniczanie wykorzystania sieci. Na przykład:

emulator @Pixel8_API_34 -netfast

Ta opcja jest identyczna z określaniem wartości -netspeed full -netdelay none. Są to wartości domyślne tych opcji.

-netspeed speed

Ustawia emulację szybkości sieci. Określa maksymalną wartość przesyłania i prędkości pobierania z jedną z tych wartości speed w kb/s:

  • gsm – GSM/CSD (góra: 14,4, dół: 14,4).
  • hscsd – HSCSD (góra: 14,4, dół: 57,6).
  • gprs – GPRS (góra: 28,8, spadek: 57,6).
  • edge – EDGE/EGPRS (góra: 473,6, dół: 473,6).
  • umts – UMTS/3G (góra: 384,0, dół: 384,0).
  • hsdpa – HSDPA (góra: 5760,0, dół: 13980,0).
  • lte – LTE (wzrost: 58 000, spadek: 173 000).
  • evdo – EVDO (wzrost: 75 000, spadek: 280 000).
  • full – bez limitu, wartość domyślna (góra: 0,0, dół: 0,0).
  • num – określa szybkość przesyłania i pobierania.
  • up:down – określa pojedyncze wartości w górę i w dół. Szybkość działania.

Na przykład:

emulator @Pixel8_API_34 -netspeed edge

Emulator obsługuje ograniczanie przepustowości sieci oraz większe opóźnienia połączeń. Możesz go zdefiniować przez konfigurację motywu lub Opcje: ‑netspeed i -netdelay.

-port port Ustawia numer portu TCP używany przez konsolę i adb. Na przykład:

emulator @Pixel8_API_34 -port 5556

Wartość domyślna to 5554 dla pierwszej instancji urządzenia wirtualnego uruchomionego w na komputerze. Urządzenie wirtualne zajmuje zwykle 2 sąsiadujące porty: port konsoli i port adb. Konsola pierwszego urządzenia wirtualnego, na którym działa dany komputer używa portu 5554 konsoli i portu 5555 w usłudze adb. Kolejna instancji używają numerów portów rosnących o dwa. Na przykład 5556/5557, 5558/5559 itd. Zakres wynosi od 5554 do 5682, co pozwala na zastosowanie 64 jednoczesnych połączeń i urządzeniami wirtualnymi.

Przypisanie portów jest często takie samo jak określenie -ports port,{port + 1}. {port + 1} musi jest bezpłatny i jest zarezerwowany dla domeny adb. Jeśli dowolny z portów konsoli lub adb jest jest już w użyciu, emulator się nie uruchomi.

Opcja ‑port Raportuje, których portów i numerów seryjnych używa urządzenie wirtualne, oraz ostrzega, jeśli są jakieś problemy z podanymi przez Ciebie wartościami. W interfejsie emulatora możesz: zobaczysz numer portu konsoli w tytule okna i wyświetl port adb. wybierając Pomoc > Informacje.

Pamiętaj, że jeśli wartość port nie jest parzysta i znajduje się w w zakresie od 5554 do 5584, urządzenie wirtualne uruchomi się, ale nie będzie widoczne użyj polecenia adb devices, jeśli adb server rozpoczyna się po za pomocą emulatora. Z tego powodu zalecamy używanie parzystego numeru portu konsoli.

-ports
console-port,adb-port
Ustawia porty TCP używane przez konsolę i adb. Na przykład:

emulator @Pixel8_API_34 -ports 5556,5559

Prawidłowy zakres portów wynosi od 5554 do 5682, co pozwala na 64 równoczesne połączenia wirtualne urządzenia. Opcja -ports informuje, które porty i numer seryjny używa instancji emulatora i ostrzega o ewentualnych problemach z podane przez Ciebie wartości.

Zalecamy, aby w miarę możliwości używać opcji -port. Opcja -ports jest dostępna w przypadku konfiguracji sieci, które wymagają ustawień specjalnych.

Więcej informacji o ustawieniach konsoli i portów adb znajdziesz w artykule -port.

-tcpdump filepath Przechwytuje pakiety sieciowe i zapisuje je w pliku. Na przykład:

emulator @Pixel8_API_34 -tcpdump /path/dumpfile.cap

Użyj tej opcji, aby rozpocząć przechwytywanie wszystkich pakietów sieciowych wysyłanych przez w wirtualnej sieci LAN Ethernet emulatora. Później możesz użyć narzędzi, takich jak Wireshark, aby analizować ruch.

Pamiętaj, że ta opcja przechwytuje wszystkie pakiety Ethernet, a nie tylko porty TCP. połączeń.

System
-accel mode Konfiguruje przyspieszenie maszyny wirtualnej emulatora. Na przykład:

emulator @Pixel8_API_34 -accel auto

Emulacja przyspieszona działa tylko w przypadku obrazów systemowych w formatach x86 i x86_64. W Linuksie korzysta z KVM. W systemach Windows i macOS opiera się na procesorze Intel i technologii Intel HAXM. sterownika. Ta opcja jest ignorowana, jeśli nie emulujesz urządzenia x86 ani x86_64.

Prawidłowe wartości dla mode to:

  • auto – automatycznie określa, czy akceleracja jest obsługiwana, korzysta z niego, gdy jest to możliwe (ustawienie domyślne).
  • off – całkowite wyłączenie przyspieszenia, co jest przede wszystkim przydatne. do debugowania.
  • on – wymusza przyspieszenie. Jeśli zasada KVM lub HAXM nie jest zainstalowana lub nie działa, emulator nie uruchamia się i wyświetla komunikat o błędzie.

Więcej informacji znajdziesz w artykule Konfigurowanie akceleracji sprzętowej emulatora Androida.

-accel-check Sprawdza, czy wymagany hipernadzorca do przyspieszenia maszyny wirtualnej emulatora jest (HAXM lub KVM). Na przykład:

emulator -accel-check

Więcej informacji znajdziesz w artykule Sprawdzanie, czy zainstalowany jest hipernadzorca.

-engine engine

Określa silnik emulatora:

  • auto – automatycznie wybiera wyszukiwarkę (domyślnie).
  • classic – używa starszej wersji QEMU 1 (wycofana).
  • qemu2 – używa nowszego silnika QEMU 2.

Na przykład:

emulator @Pixel8_API_34 -engine auto

Automatyczne wykrywanie powinno wybrać wartość, która zapewni największą skuteczność, gdy emulacją konkretnego AVD. Używaj opcji -engine do: wyłącznie w celach debugowania i porównywania.

-gpu mode Wybiera tryb emulacji GPU. Na przykład:

emulator @Pixel8_API_34 -gpu swiftshader_indirect

Więcej informacji znajdziesz w artykule Konfigurowanie akceleracji grafiki.

-no-accel Wyłącza przyspieszenie maszyny wirtualnej emulatora w systemie x86 lub x86_64 . Jest przydatny tylko do debugowania i jest taki sam jak określenie właściwości -accel off. Na przykład:

emulator @Pixel8_API_34 -no-accel

Więcej informacji znajdziesz w artykule Konfigurowanie akceleracji sprzętowej emulatora Androida.

-nojni
-no-jni
Wyłącza testy JNI (rozszerzonego interfejsu Java Native Interface) w Android Dalvik lub środowiska wykonawczego ART. Na przykład:

emulator @Pixel8_API_34 -nojni

Gdy uruchamiasz urządzenie wirtualne, rozszerzone sprawdzanie JNI jest domyślnie włączone. Dla: więcej informacji: JNI .

-selinux {disabled|permissive} Ustawia Security-Extended Linux (SELinux) modułu zabezpieczeń na tryb disabled lub permissive w systemie Linux. systemu. Na przykład:

me-linux$ emulator @Pixel8_API_34 -selinux permissive

Domyślnie SELinux działa w trybie enforcing, co oznacza, że zasada zabezpieczeń to jest egzekwowane. Tryb permissive wczytuje zasadę SELinux, ale tego nie robi i wyegzekwować jego przestrzeganie. Ta opcja rejestruje tylko naruszenia zasad. Wyłączenia trybu disabled przez jądra systemu SELinux.

-timezone timezone

Ustawia strefę czasową urządzenia wirtualnego na timezone zamiast strefy czasowej hosta. Dla: przykład:

emulator @Pixel8_API_34 -timezone Europe/Paris

Domyślnie emulator używa strefy czasowej komputera, z którego korzystasz. Używaj wybierz tę opcję, aby określić inną strefę czasową lub jeśli automatyczne wykrywanie nie który działa poprawnie. Wartość timezone musi znajdować się w zoneinfo czyli area/location lub area/subarea/location. Na przykład:

  • America/Los_Angeles
  • Europe/Paris
  • America/Argentina/Buenos_Aires

Podana strefa czasowa musi znajdować się w bazie danych stref informacji.

-version Wyświetla numer wersji emulatora. Na przykład:

emulator @Pixel8_API_34 -version

lub

emulator -version
Interfejs użytkownika
-no-boot-anim Wyłącza animację rozruchu podczas uruchamiania emulatora, aby przyspieszyć rozruch. Na przykład:

emulator @Pixel8_API_34 -no-boot-anim

Na wolniejszych komputerach ta opcja może znacznie przyspieszyć sekwencję uruchamiania.

-screen mode Ustawia tryb emulowanego ekranu dotykowego. Na przykład:

emulator @Pixel8_API_34 -screen no-touch

mode może mieć dowolną z tych wartości:

  • touch – emuluje ekran dotykowy (domyślnie).
  • multi-touch – emuluje ekran wielodotykowy.
  • no-touch – wyłącza ekran dotykowy i ekran wielodotykowy za pomocą emulacji.

Opcje zaawansowane

Opcje uruchamiania wiersza poleceń wymienione w poniższej tabeli są dostępne, ale nie są często używane przez przeciętnego dewelopera aplikacji.

W opisach katalog roboczy to bieżący katalog w terminala, w którym wpisujesz polecenia. Informacje o AVD katalog systemowy i katalog danych oraz zapisane pliki zapoznaj się z sekcją o domyślnych katalogach i plikach.

Niektóre z tych opcji są odpowiednie dla zewnętrznych deweloperów aplikacji, a niektóre są używane głównie przez programistów platform. Tworzeni deweloperzy aplikacji aplikacje na Androida i uruchamiają je na konkretnych urządzeniach AVD. Deweloperzy platformy pracują nad platformą w systemie Android i uruchomić go w emulatorze bez gotowego narzędzia AVD.

Tabela 4. Zaawansowane opcje wiersza poleceń

Opcja zaawansowana Krótki opis
-bootchart timeout

Włącza rozruchowy schemat z limitem czasu w sekundach. Niektóre systemy Android obrazy mają zmodyfikowany system inicjowania, który integruje usługę rozruchu. Możesz przesłać przy założeniu, że zostanie przewidziany na czas oczekiwania na uruchomienie schematu rozruchowego w systemie. Jeśli Twój system inicjujący nie ma włączonego procesu rozruchowego, ta opcja nie ma żadnego efektu. Ta opcja jest przede wszystkim dla deweloperów platform, a nie dla zewnętrznych deweloperów aplikacji.

Na przykład:

emulator @Pixel8_API_34 -bootchart 120
-cache filepath

Wskazuje plik obrazu partycji pamięci podręcznej. Podaje nazwę pliku i bezwzględną wartość ścieżka lub ścieżka względem katalogu danych w celu skonfigurowania stałej pamięci podręcznej . Jeśli plik nie istnieje, emulator utworzy go jako pusty plik.

Na przykład:

emulator @Pixel8_API_34 -cache
   ~/.android/avd/Pixel8_API_34.avd/cache_persistent.img

Jeśli nie użyjesz tej opcji, domyślnie będzie używany plik tymczasowy o nazwie cache.img Więcej informacji znajdziesz w sekcji Dane AVD Katalog.

-cache-size size

Ustawia rozmiar partycji pamięci podręcznej w MB.

Na przykład:

emulator @Pixel8_API_34 -cache-size 1000

Jeśli nie chcesz w przypadku tej opcji domyślna wartość to 66 MB. Zwykle większość deweloperów aplikacji nie potrzebuje tej opcji, chyba że muszą pobierać bardzo duże pliki, które są większe niż domyślne pamięci podręcznej. Więcej informacji o pamięci podręcznej znajdziesz w katalogu danych AVD.

-data filepath

Konfiguruje plik obrazu partycji danych użytkownika. Podaje nazwę pliku i ścieżki bezwzględnej lub ścieżki względem katalogu roboczego, aby skonfigurować trwały plik danych użytkownika. Jeśli plik nie istnieje, emulator utworzy z domyślnego pliku userdata.img, zapisuje go w nazwie pliku i zachować dane użytkowników po wyłączeniu usługi.

Na przykład:

emulator @Pixel8_API_34 -data
   ~/.android/avd/Pixel8_API_34.avd/userdata-test.img

Jeśli nie użyjesz tej opcji, domyślnie będzie używany plik o nazwie userdata-qemu.img. Więcej informacji o pliku danych użytkownika znajdziesz w sekcji Dane AVD Katalog.

-datadir dir

Wskazuje katalog danych przy użyciu ścieżki bezwzględnej. Aby dowiedzieć się więcej, zobacz katalog danych AVD.

Na przykład:

emulator @Pixel8_API_34 -datadir
   ~/.android/avd/Pixel8_API_34.avd/mytest
-force-32bit

Używa emulatora 32-bitowego na platformach 64-bitowych. Od czasu do czasu ta opcja jest przydatne do testowania lub debugowania. Na przykład pojawił się problem, w którym W wersji 64-bitowej Windows emulator czasem nie działał, ale w wersji 32-bitowej – działać. Ten okazała się przydatna podczas porównań w celu debugowania problemu. Oto przykład:

emulator @Pixel8_API_34 -force-32bit
-help-disk-images

Uzyskuje pomoc dotyczącą obrazów dysków. Ta opcja dostarcza informacji związanych z zarówno aplikacji, jak i platformy. Na przykład:

emulator -help-disk-images
-help-char-devices

Uzyskiwanie pomocy dotyczącej specyfikacji znaków device. O Niektóre opcje emulatora wymagają parametru device. Na przykład:

emulator -help-char-devices
-help-sdk-images

Uzyskuje pomoc dotyczącą obrazów dysków istotnych dla deweloperów aplikacji. Ta opcja zapewnia o tym, gdzie znajdują się pliki graficzne dla AVD utworzonego przy użyciu Narzędzia SDK. Na przykład:

emulator -help-sdk-images
-help-build-images

Uzyskuje pomoc dotyczącą obrazów dysków przydatnych dla deweloperów platformy. Na przykład:

emulator -help-build-images
-initdata filepath
-init-data filepath

Określa początkową wersję partycji danych. Po wyczyszczeniu pamięci danych użytkownika, emulator skopiuje zawartość określonego pliku użytkownikowi danych (domyślnie w pliku userdata-qemu.img), zamiast używać funkcji domyślny plik userdata.img jako wersję początkową. Określa nazwa pliku i ścieżka bezwzględna lub względna wobec katalogu roboczego.

Na przykład:

emulator @Pixel8_API_34 -initdata
   ~/Library/Android/sdk/system-images/android-34/
   google_apis/x86_64/userdata-test.img

Jeśli nie określisz ścieżki, plik zostanie umieszczony w katalogu systemowym. Więcej informacje znajdziesz w katalogu systemowym AVD.

-kernel filepath

Korzysta z konkretnego emulowanego jądra. Jeśli nie określisz ścieżki, emulator przeszukuje katalog systemowy.

Użyj Opcja ‑show‑kernel wyświetlająca komunikaty debugowania jądra.

Na przykład:

emulator @Pixel8_API_34 -kernel
   ~/Library/Android/sdk/system-images/android-34/
   google_apis/x86_64/kernel-test.img -show-kernel

Jeśli nie określisz tej opcji, domyślna wartość to kernel-ranchu. Więcej informacje znajdziesz w katalogu systemowym AVD.

-noaudio
-no-audio

Wyłącza obsługę dźwięku na tym urządzeniu wirtualnym. Niektóre systemy Linux i Windows komputery mają wadliwe sterowniki audio, które powodują różne objawy, co uniemożliwia uruchomienie emulatora. W takim przypadku należy użyć tej opcji, aby eliminować ten problem. Możesz też użyć usługi QEMU_AUDIO_DRV aby zmienić backend audio.

Na przykład:

emulator @Pixel8_API_34 -noaudio
-nocache
-no-cache

Uruchamia emulator bez partycji pamięci podręcznej. Jeśli nie używasz tego domyślnie jest to plik tymczasowy o nazwie cache.img. Ten jest przeznaczona tylko dla programistów platformowych. Więcej informacji znajdziesz w katalogu danych AVD.

Na przykład:

emulator @Pixel8_API_34 -nocache
-no-snapshot

Blokuje operacje automatycznego wczytywania i zapisu, powodując, że emulator aby wykonać pełną sekwencję rozruchową i utracić swój stan po zamknięciu. Zastępuje opcję -snapshot.

Na przykład:

emulator @Pixel8_API_34 -no-snapshot
-no-snapshot-load

Uniemożliwia emulatorowi wczytywanie stanu AVD z pamięci zrzutów. Wykonuje pełny rozruch.

Na przykład:

emulator @Pixel8_API_34 -no-snapshot-load
-no-snapshot-save

Zapobiega zapisywaniu stanu AVD w pamięci zrzutów w emulatorze co oznacza, że wszystkie zmiany zostaną utracone.

Na przykład:

emulator @Pixel8_API_34 -no-snapshot-save
-no-snapshot-update-time

Nie podejmuje próby skorygowania czasu AVD natychmiast po przywróceniu zrzutu. Ta opcja może być przydatna podczas testowania, ponieważ pozwala uniknąć nagłych skoków w czasie. Aktualizacje czasu są nadal wysyłane do AVD co około 15 sekund.

Na przykład:

emulator @Pixel8_API_34 -no-snapshot-update-time
-no-snapstorage

Uruchamia emulator bez podłączania pliku do przechowywania lub wczytywania stanu które wymuszają pełny rozruch i wyłączają funkcję tworzenia zrzutów stanu. Ten zastępuje -snapstorage i -snapshot .

Na przykład:

emulator @Pixel8_API_34 -no-snapstorage
-no-window

Wyłącza graficzne wyświetlanie okien w emulatorze. Ta opcja jest przydatna gdy emulator działa na serwerach, które nie mają wyświetlacza. Dostęp do emulatora możesz uzyskać za pomocą: adb lub konsoli. Na przykład:

emulator @Pixel8_API_34 -no-window
-partition-size size

Określa rozmiar partycji danych systemowych w MB. Na przykład:

emulator @Pixel8_API_34 -partition-size 1024
-prop name=value

Konfiguruje w emulatorze właściwość systemu Android po jego uruchomieniu. Pole name musi być nazwą właściwości z etykietą qemu_prop równą maksymalnie 32 znaki bez spacji, a value musi być ciągiem z do większość z 92 znaków. Na przykład zobacz property_contexts plik. Możesz określić kilka opcji ‑prop na jednej wiersza poleceń. Ta opcja może być przydatna podczas debugowania. Na przykład:

emulator @Pixel8_API_34 -prop qemu.name=value -prop qemu.abc=xyz
-qemu args Przekazuje argumenty do oprogramowania emulatora QEMU. Jeśli używasz tej opcji, upewnij się, że jest to ostatnia została określona opcja, ponieważ wszystkie następne opcje są interpretowane jako związane z QEMU. . Ta opcja jest dość zaawansowana, więc powinni z niej korzystać tylko programiści, są bardzoznajome z QEMUiemulacją Androida.
-qemu -h

Wyświetla pomoc dotyczącą funkcji -qemu. Na przykład:

emulator -qemu -h
-ramdisk filepath

Określa obraz rozruchowy dysku ramdisk. Określa nazwę pliku i ścieżkę bezwzględną lub ścieżkę względną do katalogu roboczego.

Na przykład:

emulator @Pixel8_API_34 -ramdisk
   ~/Library/Android/sdk/system-images/android-34/
   google_apis/x86_64/ramdisk-test.img

Jeśli nie użyjesz tej opcji, domyślnie jest to plik ramdisk.img w katalogu systemowym. Więcej informacje znajdziesz w katalogu systemowym AVD.

-report-console socket

Przed rozpoczęciem zgłasza port konsoli zdalnej firmie zewnętrznej za pomocą emulacji. Może być przydatna w przypadku skryptu automatycznego testowania. socket musi użyć jednej z tych opcji formaty:

  • tcp:port[,server][,max=seconds][,ipv6]
  • unix:port[,server][,max=seconds][,ipv6]

Aby uzyskać więcej informacji, użyj opcji -help-report-console zgodnie z opisem w sekcji z pomocą dotyczącą konkretnych opcji.

-shell

Tworzy główną konsolę powłoki w bieżącym terminalu. Ta opcja różni się od adb shell w następujący sposób:

  • Tworzy powłokę root, która pozwala modyfikować wiele części systemu.
  • Działa nawet wtedy, gdy interfejs adb daemon w emulowanym systemie jest uszkodzony.
  • Naciśnij Control + C (lub Command + C w systemie macOS), aby zatrzymać emulator zamiast powłoki.

Na przykład:

emulator @Pixel8_API_34 -shell
-snapshot name

Określa nazwę zrzutu w pliku pamięci masowej na potrzeby automatycznego rozpoczynania i zapisywania operacji.

Zamiast wykonywać pełną sekwencję rozruchową, emulator może wznowić wykonywanie wykonywania od wcześniejszego zrzutu stanu, który jest zwykle znacznie szybsze. Gdy podasz tę opcję, emulator wczytuje migawkę tej nazwy z obrazu zrzutu i zapisuje ją z powrotem. pod tą samą nazwą.

Jeśli nie skorzystasz z tej opcji, domyślnie przyjęta zostanie wartość pełną sekwencję rozruchową. Jeśli określony zrzut nie istnieje, zamiast tego emulator wykonuje pełną sekwencję rozruchu i wykonuje zapisu.

Zobacz opcję -snapstorage, aby uzyskać więcej informacji: określając plik pamięci zrzutu i plik domyślny.

emulator @Pixel8_API_34 -snapshot snapshot2

Pamiętaj, że podczas wczytywania zrzutu cała zawartość systemu, dane użytkownika i obrazy karty SD zostaną zastąpione z treścią zapisaną w momencie tworzenia zrzutu. Chyba że zapiszesz te informacje w innym zrzucie ekranu, wszelkie wprowadzone od tego czasu zmiany zostaną utracone.

Zrzut możesz też utworzyć w konsoli emulatora, używając avd snapshot save name. Więcej informacji: Wysyłanie poleceń konsoli emulatora.

-snapshot-list

Wyświetla listę dostępnych zrzutów. To polecenie powoduje wydrukowanie tabeli zrzutów zapisane w pliku pamięci zrzutów, w którym emulator został uruchomiony. a następnie opuszcza. Jeśli określisz: -snapstorage file również generuje tabelę zrzutów zapisanych w pliku.

Na przykład:

emulator @Pixel8_API_34 -snapshot-list -snapstorage
   ~/.android/avd/Pixel8_API_34.avd/snapshots-test.img

W danych wyjściowych możesz użyć wartości z kolumn ID i TAG. jako argumenty opcji -snapshot.

-snapstorage filepath

Określa plik repozytorium zawierający wszystkie zrzuty stanu. Wszystkie W tym pliku są zapisywane zrzuty ekranu wykonane podczas wykonywania zadania. Tylko zrzuty w tym pliku można przywrócić podczas działania emulatora.

Na przykład:

emulator @Pixel8_API_34 -snapstorage
   ~/.android/avd/Pixel8_API_34.avd/snapshots-test.img

Jeśli nie określisz tej opcji, domyślnie przyjęta zostanie wartość snapshots.img w danych. katalogu. Jeśli określony plik nie istnieje, emulator uruchomi się, ale bez obsługi zapisywania i wczytywania zrzutów stanu.

-sysdir dir

Wskazuje katalog systemowy przy użyciu ścieżki bezwzględnej. Aby dowiedzieć się więcej, zobacz katalog systemu AVD. Na przykład:

emulator @Pixel8_API_34 -sysdir
   ~/Library/Android/sdk/system-images/android-34/
   google_apis/x86_64/test
-system filepath

Określa początkowy plik systemowy. Podaje nazwę pliku i ścieżkę bezwzględną lub ścieżkę względną do katalogu roboczego.

Na przykład:

emulator @Pixel8_API_34 -system
   ~/Library/Android/sdk/system-images/android-34/
   google_apis/x86_64/system-test.img

Jeśli nie użyjesz tej opcji, domyślnie jest to plik system.img w katalogu systemowym. Więcej informacje znajdziesz w katalogu systemowym AVD.

-use-system-libs

W Linuksie używana jest systemowa libstdc++ zamiast pakietu wersji w systemie emulatora. Użyj tej opcji tylko wtedy, gdy emulator nie uruchomi się normalnie. Pamiętaj, że to nie zawsze działa. Możesz też ustawić ANDROID_EMULATOR_USE_SYSTEM_LIBS zmienną środowiskową na 1.

Na przykład:

me-linux$ emulator @Pixel8_API_34 -use-system-libs
-writable-system

Użyj tej opcji, aby mieć zapis obrazu systemu podczas sesji emulacji. Aby to zrobić:

  1. Umożliwia uruchomienie urządzenia wirtualnego za pomocą opcji -writable-system.
  2. Aby to sprawdzić, wpisz w terminalu poleceń polecenie adb remount emulatorowi, aby ponownie podłączyć system/ jako do odczytu/zapisu. Domyślnie jest on podłączony jako tylko do odczytu.

Użycie tej flagi spowoduje utworzenie tymczasowej kopii obrazu systemu które mogą być bardzo duże (do kilkuset MB), ale zostaną zniszczone, gdy emulator .

Wycofane opcje

Te opcje wiersza poleceń zostały wycofane:

  • -audio-in
  • -audio-out
  • -charmap
  • -code-profile
  • -cpu-delay
  • -dpi-device
  • -dynamic_skin
  • -enable-kvm
  • -gps
  • -image
  • -keyset
  • -help-keys
  • -help-keyset-file
  • -nand-limits
  • -noskin
  • -no-skin
  • -onion
  • -onion-alpha
  • -onion-rotation
  • -radio
  • -ranchu
  • -raw-keys
  • -scale
  • -shared-net-id
  • -shell-serial
  • -skin
  • -skindir
  • -trace
  • -useaudio

Pomoc dotycząca opcji wiersza poleceń

W tej sekcji opisaliśmy, jak uzyskać pomoc dotyczącą opcji wiersza poleceń. it zawiera bardziej szczegółowe informacje na temat często stosowanych opcje wiersza poleceń emulatora, które są dostępne po uruchomieniu emulatora.

Wyświetl wszystkie opcje emulatora

Aby wydrukować listę wszystkich opcji emulatora, w tym krótki opis, wpisz następujące polecenie:

emulator -help

Uzyskiwanie szczegółowej pomocy dotyczącej konkretnej opcji

Aby wydrukować pomoc dotyczącą określonej opcji uruchamiania, wpisz to polecenie:

emulator -help-option

Na przykład:

emulator -help-netspeed

Ta pomoc jest bardziej szczegółowa niż opis podany przez Opcja: -help.

Szczegółowa pomoc dotycząca wszystkich opcji

Aby uzyskać szczegółową pomoc dotyczącą wszystkich opcji emulatora, wpisz następujące polecenie:

emulator -help-all

Wyświetlenie listy zmiennych środowiskowych emulatora

Aby wyświetlić listę zmiennych środowiskowych emulatora, wpisz następujące polecenie:

emulator -help-environment

Zmienne środowiskowe możesz ustawić w oknie terminala przed uruchomieniem polecenia urządzenia wirtualnego lub możesz skonfigurować tę funkcję w ustawieniach użytkownika systemu. Możesz ją na przykład ustawić w pliku .bashrc na Linuksie.

Wyświetl listę tagów debugowania

Aby wydrukować listę tagów dla opcji -debug, wpisz to polecenie:

emulator -help-debug-tags

Opcje -debug umożliwiają włączanie i wyłączanie komunikatów debugowania z: określonych w tagach.