Każde uruchomione urządzenie wirtualne udostępnia konsolę, która umożliwia wysyłanie zapytań do emulowanego środowiska urządzenia i sterowanie nim. Za pomocą konsoli możesz na przykład zarządzać przekierowaniem portów, charakterystyką sieci i zdarzeniami telefonicznymi, gdy aplikacja jest uruchomiona na emulatorze.
Poniższe polecenia wymagają, aby emulator był już uruchomiony. Więcej informacji o uruchamianiu emulatora znajdziesz w artykułach Uruchamianie aplikacji w Emulatorze Androida i Uruchamianie emulatora z wiersza poleceń.
Rozpoczynanie i zatrzymywanie sesji konsoli
Aby uzyskać dostęp do konsoli i wpisywać polecenia w oknie terminala, użyj złącza telnet, aby połączyć się z portem konsoli, i podaj token uwierzytelniania. Za każdym razem, gdy konsola wyświetli OK, będzie gotowa do przyjęcia poleceń. Nie ma typowego prompta.
Aby połączyć się z konsolą działającego urządzenia wirtualnego:
- Otwórz okno terminala i wpisz to polecenie:
- Gdy w konsoli pojawi się znak
OK, wpisz polecenieauth auth_token. - Po połączeniu z konsolą wpisz polecenia konsoli.
- Aby zakończyć sesję konsoli, wpisz
quitlubexit.
telnet localhost console-port
Tytuł okna emulatora zawiera numer portu konsoli, gdy jest ona uruchomiona w osobnym oknie, ale nie zawiera go, gdy jest uruchomiona w oknie narzędzi. Na przykład tytuł okna emulatora korzystającego z portu konsoli 5554 może wyglądać tak: Pixel8_API_34:5554. Polecenie adb devices wyświetla listę uruchomionych urządzeń wirtualnych i numery portów konsoli. Więcej informacji znajdziesz w sekcji Wysyłanie zapytań o urządzenia.
Uwaga: emulator nasłuchuje połączeń na portach 5554–5585 i akceptuje połączenia tylko z localhost.
Zanim będzie można wpisać polecenia konsoli, konsola emulatora wymaga uwierzytelnienia. auth_token musi być zgodny z zawartością pliku .emulator_console_auth_token w katalogu głównym.
Jeśli ten plik nie istnieje, polecenie telnet localhost console-port
utworzy plik zawierający losowo wygenerowany token uwierzytelniania. Aby wyłączyć uwierzytelnianie, usuń token z pliku .emulator_console_auth_token lub utwórz pusty plik, jeśli nie istnieje.
Wpisz help, help command lub help-verbose, aby wyświetlić listę poleceń konsoli i dowiedzieć się więcej o poszczególnych poleceniach.
Oto przykładowa sesja:
$ telnet localhost 5554
Trying ::1...
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Android Console: Authentication required
Android Console: type 'auth <auth_token>' to authenticate
Android Console: you can find your <auth_token> in
'/Users/me/.emulator_console_auth_token'
OK
auth 123456789ABCdefZ
Android Console: type 'help' for a list of commands
OK
help-verbose
Android console command help:
help|h|? Prints a list of commands
help-verbose Prints a list of commands with descriptions
ping Checks if the emulator is alive
automation Manages emulator automation
event Simulates hardware events
geo Geo-location commands
gsm GSM related commands
cdma CDMA related commands
crash Crashes the emulator instance
crash-on-exit Simulates crash on exit for the emulator instance
kill Terminates the emulator instance
restart Restarts the emulator instance
network Manages network settings (ethernet and cellular only)
power Power related commands
quit|exit Quits control session
redir Manages port redirections
sms SMS related commands
avd Controls virtual device execution
qemu QEMU-specific commands
sensor Manages emulator sensors
physics Manages physical model
finger Manages emulator finger print
debug Controls the emulator debug output tags
rotate Rotates the screen clockwise by 90 degrees
screenrecord Records the emulator's display
fold Folds the device
unfold Unfolds the device
multidisplay Configures the multi-display
nodraw turn on/off NoDraw mode. (experimental)
resize-display resize the display resolution to the preset size
virtualscene-image customize virtualscene image for virtulscene camera
proxy manage network proxy server settings
phonenumber set phone number for the device
try 'help <command>' for command-specific help
OK
exit
Connection closed by foreign host.
Dokumentacja poleceń emulatora
W tabeli poniżej znajdziesz opis poleceń konsoli emulatora wraz z ich parametrami i wartościami:
Tabela 1. Polecenia konsoli emulatora
| Polecenia ogólne | Opis |
|---|---|
avd {stop|start|status|name}
|
Wysyła zapytania do urządzenia wirtualnego, steruje nim i zarządza nim w ten sposób:
|
avd snapshot {list|save name|load name|delete
name}
|
Zapisuje i przywraca stan urządzenia w zrzutach w ten sposób:
W tym przykładzie zapisujemy podsumowanie danych o nazwie avd snapshot save firstactivitysnapshot |
fold
|
Składa urządzenie, aby wyświetlić konfigurację mniejszego ekranu, jeśli urządzenie jest składane i obecnie rozłożone. |
unfold
|
Rozkłada urządzenie, aby wyświetlić jego większą konfigurację ekranu, jeśli urządzenie jest składane i jest obecnie złożone. |
kill
|
Kończy działanie urządzenia wirtualnego. |
ping
|
Sprawdza, czy urządzenie wirtualne jest uruchomione. |
rotate
|
Obraca AVD w lewo o 45 stopni. |
| Awaria emulatora | Opis |
crash
|
Powoduje awarię emulatora podczas wykonywania aplikacji. |
crash-on-exit |
Powoduje awarię emulatora po zamknięciu aplikacji. |
| Debugowanie tagów | Opis |
debug tags ...
|
Włącza i wyłącza komunikaty debugowania z określonych części emulatora.
Parametr tags musi być wartością z listy tagów debugowania, która pojawia się po wykonaniu polecenia
Poniższy przykład włącza tag debug radio |
| Przekierowanie portów | Opis |
redir list
|
Wyświetla bieżące przekierowanie portu. |
redir add protocol:host-port:guest-port
|
Dodaje nowe przekierowanie portu w ten sposób:
|
redir del protocol:host-port
|
Usuwa przekierowanie portu.
|
| Lokalizacja geograficzna | Opis |
|
Ustawia położenie geograficzne zgłaszane aplikacjom działającym w emulatorze, wysyłając do niego poprawkę GPS. Gdy tylko urządzenie wirtualne zacznie działać, możesz wydać jedno z tych poleceń |
|
geo fix longitude latitude [altitude] [satellites] [velocity]
|
Wysyła do emulatora prostą pozycję GPS.
Wartości longitude i latitude
należy podać w stopniach dziesiętnych. Użyj liczby od 1 do 12, aby określić liczbę satellites, które mają być użyte do określenia pozycji, i podaj altitude w metrach oraz velocity w węzłach.
|
geo nmea sentence
|
Wysyła do emulowanego urządzenia zdanie NMEA 0183 tak, jakby zostało wysłane z emulowanego modemu GPS. Zacznij od sentence z „$GP”.
Obecnie obsługiwane są tylko zdania „$GPGGA” i „$GPRCM”. Poniższy przykład
to zdanie GPGGA (Global Positioning System Fix Data), które pobiera
dane o czasie, pozycji i poprawkach dla odbiornika GPS:
geo nmea $GPGGA ,hhmmss.ss,llll.ll,a,yyyyy.yy,a,x,xx,x.x,x.x,M,x.x,M,x.x,xxxx |
| Fałszywe zdarzenia sprzętowe | Opis |
event types
|
Zawiera listę wszystkich typów fałszywych zdarzeń. W przypadku wydarzeń, które mają kody, liczba kodów jest podana w nawiasach po prawej stronie.
event types
event <type> can be an integer or one of the following aliases:
EV_SYN
EV_KEY (405 code aliases)
EV_REL (2 code aliases)
EV_ABS (27 code aliases)
EV_MSC
EV_SW (4 code aliases)
EV_LED
EV_SND
EV_REP
EV_FF
EV_PWR
EV_FF_STATUS
EV_MAX
OK
|
event send types [types ...]
|
Wysyła co najmniej 1 rodzaj fałszywego zdarzenia. |
event codes type
|
Zawiera listę kodów zdarzeń dla określonego typu fałszywego zdarzenia. |
event send type[:code]:[value] [...]
|
Wysyła co najmniej 1 fałszywe zdarzenie z opcjonalnymi kodami i wartościami kodów.
Aby dowiedzieć się, które zdarzenie wysłać, możesz użyć polecenia Oto zdarzenia generowane po naciśnięciu przycisku zasilania:
adb shell getevent -lt
/dev/input/event12: EV_KEY KEY_POWER DOWN
/dev/input/event12: EV_SYN SYN_REPORT 00000000
/dev/input/event12: EV_KEY KEY_POWER UP
/dev/input/event12: EV_SYN SYN_REPORT 00000000
EV_KEY: keydown i keyup:
event send EV_KEY:KEY_POWER:0
OK
event send EV_KEY:KEY_POWER:1
OK
|
event text message
|
Wysyła ciąg znaków, które symulują naciśnięcia klawiszy. Wiadomość musi być ciągiem znaków UTF-8. Posty w Unicode są odwrotnie mapowane zgodnie z bieżącą klawiaturą urządzenia, a nieobsługiwane znaki są cicho odrzucane. |
| Ustawienia stanu zasilania | Opis |
power display
|
Wyświetla stan baterii i ładowarki. |
power ac {on|off}
|
Ustawia stan ładowania prądem zmiennym na on lub off.
|
power status {unknown|charging|discharging|not-charging|full}
|
Zmienia stan baterii zgodnie z określonymi ustawieniami. |
power present {true|false}
|
Ustawia stan obecności baterii. |
power health {unknown|good|overheat|dead|overvoltage|failure}
|
Ustawia stan baterii. |
power capacity percent
|
Ustawia pozostałą pojemność baterii jako wartość procentową od 0 do 100. |
| Stan połączenia sieciowego (tylko Ethernet i sieć komórkowa) |
Opis |
network status
|
Sprawdza stan sieci oraz bieżące opóźnienie i szybkość. |
network delay latency
|
Zmienia emulowane opóźnienie sieci. Emulator umożliwia symulowanie różnych poziomów opóźnienia sieci, dzięki czemu możesz testować aplikację w środowisku bardziej typowym dla rzeczywistych warunków działania. Możesz ustawić poziom lub zakres opóźnienia podczas uruchamiania emulatora albo użyć konsoli, aby zmienić opóźnienie, gdy aplikacja jest uruchomiona w emulatorze. Format sieci latency jest jednym z tych formatów (liczby podane są w milisekundach): Format opóźnienia sieci:
Aby ustawić opóźnienie przy uruchamianiu emulatora, użyj emulator -netdelay gprs emulator -netdelay 40,100 Aby wprowadzić zmiany w opóźnieniu sieci podczas działania emulatora, połącz się z konsolą i użyj polecenia network delay gprs network delay 40 100 |
network speed speed |
Emulator umożliwia symulowanie różnych szybkości przesyłania danych w sieci.
Szybkość lub zakres przesyłania możesz ustawić podczas uruchamiania emulatora lub zmienić ją w konsoli, gdy aplikacja jest uruchomiona w emulatorze. Format sieci Format prędkości sieci:
Aby ustawić szybkość sieci podczas uruchamiania emulatora, użyj emulator -netspeed gsm @Pixel_API_26 emulator -netspeed 14.4,80 @Pixel_API_26 Aby wprowadzić zmiany w szybkości sieci podczas działania emulatora, połącz się z konsolą i użyj polecenia network speed 14.4 80 |
network capture {start|stop} file |
Wysyła pakiety do pliku. Poniższa lista zawiera opis parametrów i ich wartości:
|
| Emulacja połączeń telefonicznych | Opis |
| Emulator Androida zawiera własne emulowane modemy GSM i CDMA, które umożliwiają symulowanie funkcji telefonicznych w emulatorze. Na przykład w przypadku GSM możesz symulować połączenia przychodzące i nawiązywać oraz zakańczać połączenia transmisji danych. W przypadku CDMA podajesz źródło subskrypcji i preferowaną listę roamingową. System Android obsługuje symulowane połączenia dokładnie tak samo jak rzeczywiste. Emulator nie obsługuje dźwięku połączeń. | |
gsm {call|accept|cancel|busy} phonenumber
|
Parametry gsm to:
|
gsm {data|voice} state
|
Polecenie data state zmienia stan połączenia transmisji danych GPRS, a polecenie data voice state zmienia stan połączenia głosowego GPRS w ten sposób:
|
gsm hold
|
Zmienia stan połączenia na hold. Stan połączenia możesz zmienić na hold tylko wtedy, gdy jego bieżący stan to active lub waiting.
|
gsm list
|
Wyświetla listę wszystkich połączeń przychodzących i wychodzących oraz ich stanów. |
gsm status
|
Zwraca bieżący stan połączeń głosowych i transmisji danych w sieci GSM. Wartości są takie same jak w przypadku poleceń voice i data.
|
gsm signal {rssi|ber}
|
Zmienia zgłoszoną siłę sygnału (rssi) i wskaźnik błędów bitowych (ber) w ciągu następnych 15 sekund aktualizacji. Poniższa lista zawiera opis parametrów i ich wartości:
|
gsm signal-profile num
|
Ustawia profil siły sygnału.
num to liczba od 0 do 4.
|
cdma ssource source
|
Ustawia bieżące źródło subskrypcji CDMA, gdzie source to lista dozwolonych oparta na sieci, która zawiera subskrybentów operatora CDMA i ich wartości, w ten sposób:
|
cdma prl_version version
|
Zrzuca bieżącą wersję preferowanej listy roamingowej (PRL). Numer wersji dotyczy bazy danych PRL, która zawiera informacje używane podczas procesu wyboru i pozyskiwania systemu. |
| Zarządzanie czujnikami na emulatorze | Opis |
Te polecenia dotyczą tego, które czujniki są dostępne na AVD. Oprócz używania polecenia sensor możesz wyświetlać i dostosowywać ustawienia w emulatorze na ekranie Wirtualne czujniki na kartach Akcelerometr i Dodatkowe czujniki.
|
|
sensor status |
Zawiera listę wszystkich czujników i ich stanów. Poniżej przedstawiono przykładowe dane wyjściowe polecenia sensor status:
|
sensor get sensor-name
|
Pobiera ustawienia dla sensor-name. W tym przykładzie pobierana jest wartość
z czujnika przyspieszenia:
sensor get acceleration acceleration = 2.23517e-07:9.77631:0.812348
Wartości |
sensor set sensor-name value-x:value-y:value-z
|
Ustawia wartości dla parametru sensor-name. W tym przykładzie ustawiamy czujnik przyspieszenia na wartości x, y i z rozdzielone dwukropkami.
sensor set acceleration 2.23517e-07:9.77631:0.812348 |
| Emulacja SMS-ów | Opis |
sms send sender-phone-number textmessage
|
Generuje emulowany przychodzący SMS. Poniższa lista zawiera parametry i ich wartości:
Ten przykład wysyła wiadomość „hi there” na numer telefonu 4085555555: sms send 4085555555 hi there Konsola przekazuje SMS-a do platformy Android, która przekazuje go do aplikacji na emulatorze obsługującej SMS-y, np. do aplikacji Wiadomości. Jeśli przekażesz 10 cyfr, aplikacja sformatuje je jako numer telefonu. Dłuższe lub krótsze ciągi cyfr są wyświetlane w taki sposób, w jaki zostały wysłane.
|
| Symulacja odcisku palca | Opis |
finger touch fingerprint-id
|
Symuluje dotknięcie czytnika palcem. |
finger remove
|
Symuluje usunięcie palca.
Instrukcje korzystania z tych poleceń znajdziesz w sekcji symulacja i weryfikacja odcisku palca. |
Symulacja i weryfikacja odcisku palca
Rysunek 1. Ekran uwierzytelniania odciskiem palca.
Użyj polecenia finger, aby symulować i weryfikować uwierzytelnianie za pomocą odcisku palca w aplikacji. Wymagane są narzędzia SDK w wersji 24.3 lub nowszej oraz Android 6.0 (poziom interfejsu API 23) lub nowszy.
Aby zasymulować i sprawdzić uwierzytelnianie za pomocą odcisku palca:
- Jeśli nie masz jeszcze identyfikatora odcisku palca, zarejestruj nowy odcisk palca w emulatorze, wybierając Ustawienia > Zabezpieczenia > Odcisk palca i postępując zgodnie z instrukcjami rejestracji.
- Skonfiguruj aplikację, aby akceptowała uwierzytelnianie odciskiem palca. Po zakończeniu konfiguracji na urządzeniu pojawi się ekran uwierzytelniania odciskiem palca.
- Gdy aplikacja wyświetli ekran uwierzytelniania odciskiem palca, przejdź do konsoli i wpisz polecenie
finger touchoraz utworzony identyfikator odcisku palca. Symuluje to dotknięcie palcem. - Następnie wpisz polecenie
finger remove, aby zasymulować usunięcie palca.Aplikacja powinna reagować tak, jakby użytkownik dotknął czytnika linii papilarnych, a potem odsunął od niego palec.