Każde uruchomione urządzenie wirtualne ma konsolę, która pozwala na wysyłanie zapytań dotyczących emulowanego środowiska urządzenia i sterowanie nim. Gdy aplikacja działa w emulatorze, możesz np. zarządzać przekierowywaniem portów, właściwościami sieci i zdarzeniami związanymi z połączeniami telefonicznymi.
Aby wykonać te polecenia, musisz mieć uruchomiony emulator. Więcej informacji o uruchamianiu emulatora znajdziesz w artykułach na temat uruchamiania aplikacji w emulatorze Androida i uruchamiania emulatora z poziomu wiersza poleceń.
Rozpoczynanie i kończenie sesji konsoli
Aby uzyskać dostęp do konsoli i wpisywać polecenia w oknie terminala, połącz się z portem konsoli za pomocą telnet
i podaj token uwierzytelniania. Za każdym razem, gdy konsola wyświetla OK, jest gotowa do przyjmowania poleceń. Nie ma typowych promptów.
Aby połączyć się z konsolą działającego urządzenia wirtualnego:
- Otwórz okno terminala i wpisz następujące polecenie:
- Gdy w konsoli wyświetli się
OK
, wpisz polecenieauth auth_token
. - Po nawiązaniu połączenia z konsolą wpisz polecenia konsoli.
- Aby zakończyć sesję konsoli, wpisz
quit
lubexit
.
telnet localhost console-port
Tytuł okna emulatora zawiera numer portu konsoli, gdy działa w oddzielnym oknie, ale nie w oknie narzędzia. Na przykład tytuł okna emulatora korzystającego z portu 5554 konsoli może wyglądać tak: Nexus_5X_API_23:5554
. Polecenie adb devices
wyświetla też listę uruchomionych urządzeń wirtualnych wraz z numerami portów konsoli. Więcej informacji znajdziesz w artykule o wysyłaniu zapytań o urządzenia.
Uwaga: emulator nasłuchuje połączeń na portach od 5554 do 5585 i akceptuje tylko połączenia z localhost
.
Zanim będzie można wpisywać polecenia w konsoli, konsola emulatora wymaga uwierzytelnienia. Plik 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
tworzy 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ń w konsoli i dowiedzieć się więcej o konkretnych 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 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 try 'help <command>' for command-specific help OK exit Connection closed by foreign host.
Dokumentacja polecenia emulatora
W tabeli poniżej opisujemy polecenia konsoli emulatora wraz z ich parametrami i wartościami:
Polecenia ogólne | Opis |
---|---|
avd {stop|start|status|name}
|
Wykonuje zapytania, kontroluje urządzenie wirtualne i nim zarządza 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:
Ten przykład zapisuje zrzut o nazwie avd snapshot save firstactivitysnapshot |
fold
|
Składa urządzenie, aby wyświetlić jego mniejszy ekran, jeśli jest składane i obecnie rozłożone. |
unfold
|
Rozkładanie urządzenia, na którym wyświetla się większy ekran, jeśli jest składane i obecnie złożone. |
kill
|
Powoduje zakończenie działania urządzenia wirtualnego. |
ping
|
Sprawdza, czy urządzenie wirtualne jest uruchomione. |
rotate
|
Obraca AVD w lewo o 45 stopni. |
Awaria emulatora | Opis |
crash
|
Awaria emulatora podczas wykonywania aplikacji. |
crash-on-exit |
Powoduje awarię emulatora przy zamykaniu aplikacji. |
Debuguj tagi | Opis |
debug tags ...
|
Włącza lub wyłącza komunikaty debugowania z określonych części emulatora.
Parametr tags musi być wartością z listy tagów debugowania wyświetlanej po wykonaniu
W tym przykładzie włącza się tag debug radio |
Przekierowanie portów | Opis |
redir list
|
Wyświetla bieżące przekierowanie portów. |
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 lokalizację geograficzną raportowaną aplikacjom działającym w emulatorze, wysyłając sygnał GPS do emulatora. Możesz wykonać jedno z poniższych poleceń |
|
geo fix longitude latitude [altitude] [satellites] [velocity]
|
Wysyła prosty sygnał GPS do emulatora.
Podaj longitude i latitude w stopniach dziesiętnych. Użyj liczby od 1 do 12, aby określić liczbę zdarzeń typu satellites służących do określania pozycji. Określ altitude w metrach i velocity w węzłach.
|
geo nmea sentence
|
Wysyła zdanie NMEA 0183 do emulowanego urządzenia tak, jakby zostało wysłane z emulowanego modemu GPS. Rozpocznij sentence od „$GP”.
Obecnie obsługiwane są tylko zdania „$GPGGA” i „$GPRCM”. Poniższy przykład to zdanie GPGGA (Global Positioning SystemFix Data), które podaje czas, położenie i poprawia dane 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 związane ze sprzętem | Opis |
event types
|
Wyświetla listę wszystkich fałszywych typów zdarzeń. W przypadku wydarzeń z kodami ich liczba 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 fałszywy typ zdarzenia. |
event codes type
|
Wyświetla kody 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 kodu.
Aby dowiedzieć się, które zdarzenie należy 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 00000000Na przykład, aby zasymulować przytrzymanie przycisku zasilania, wyślij 2 zdarzenia EV_KEY związane z klawiszem i klawiszem: 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óry symuluje naciśnięcia klawiszy. Wiadomość musi być ciągiem UTF-8. Posty w Unicode są mapowane odwrotnie zgodnie z bieżącą klawiaturą urządzenia, a nieobsługiwane znaki są odrzucane. |
Sterowanie stanem zasilania | Opis |
power display
|
Wyświetla stan baterii i ładowarki. |
power ac {on|off}
|
Ustawia stan ładowania urządzenia podłączonego do zasilania na on lub off .
|
power status {unknown|charging|discharging|not-charging|full}
|
Zmienia określony stan baterii. |
power present {true|false}
|
Ustawia stan obecności baterii. |
power health {unknown|good|overheat|dead|overvoltage|failure}
|
Określa stan baterii. |
power capacity percent
|
Ustawia stan pozostałej pojemności baterii jako wartość procentową od 0 do 100. |
Stan połączenia sieciowego | 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óźnień sieciowych, co pozwala przetestować aplikację w środowisku bardziej typowym dla rzeczywistych warunków działania. Możesz ustawić poziom lub zakres czasu oczekiwania podczas uruchamiania emulatora. Możesz też zmienić opóźnienie w konsoli, gdy aplikacja działa w emulatorze. Sieć latency ma jeden z tych formatów (liczby w milisekundach): Format opóźnienia sieciowego:
Aby ustawić opóźnienie podczas uruchamiania emulatora, użyj opcji emulatora emulator -netdelay gprs emulator -netdelay 40,100 Aby zmienić opóźnienie sieci, gdy działa emulator, 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.
Możesz ustawić szybkość lub zakres przesyłania podczas uruchamiania emulatora. Możesz też zmieniać szybkość w konsoli, gdy aplikacja działa w emulatorze. Sieć Format szybkości sieci:
Aby ustawić szybkość sieci podczas uruchamiania emulatora, użyj opcji emulatora emulator -netspeed gsm @Pixel_API_26 emulator -netspeed 14.4,80 @Pixel_API_26 Aby zmienić szybkość sieci, gdy działa emulator, 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żej znajdziesz opis parametrów i ich wartości:
|
Emulacja telefonii | Opis |
Emulator Androida zawiera własne emulowane modemy GSM i CDMA, które umożliwiają symulowanie w nim działania funkcji telefonicznych. Dzięki GSM możesz na przykład symulować przychodzące rozmowy telefoniczne oraz nawiązywać i kończyć połączenia transmisji danych. W przypadku CDMA podajesz źródło subskrypcji i preferowaną listę roamingu. System Android obsługuje symulowane połączenia dokładnie tak samo jak prawdziwe połączenia. Emulator nie obsługuje dźwięku połączenia. | |
gsm {call|accept|cancel|busy} phonenumber
|
Parametry gsm :
|
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 następujący sposób:
|
gsm hold
|
Zmienia stan połączenia na hold . Możesz zmienić stan wywołania na hold tylko wtedy, gdy jego bieżący stan to active lub waiting .
|
gsm list
|
Zawiera listę wszystkich połączeń przychodzących i wychodzących oraz ich stanów. |
gsm status
|
Raportuje bieżący stan głosu/danych GSM. Wartości to wartości opisane w poleceniach voice i data .
|
gsm signal {rssi|ber}
|
Zmienia zgłaszaną siłę sygnału (rssi) i współczynnik 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
|
Służy do ustawiania profilu siły sygnału.
num to liczba z zakresu od 0 do 4.
|
cdma ssource source
|
Ustawianie bieżącego źródła subskrypcji CDMA, gdzie source to lista dozwolonych sieciowa, która zawiera subskrybentów operatora CDMA i ich wartości:
|
cdma prl_version version
|
Zrzuca bieżącą wersję preferowanej listy roamingu (PRL). Numer wersji dotyczy bazy danych PRL, która zawiera informacje używane podczas procesu wyboru i pozyskania systemu. |
Zarządzaj czujnikami w emulatorze | Opis |
Te polecenia określają, które czujniki są dostępne w urządzeniu AVD. Poza użyciem polecenia sensor możesz wyświetlać i zmieniać ustawienia emulatora na ekranie Wirtualne czujniki na kartach Akcelerometr i Dodatkowe czujniki.
|
|
sensor status |
Wyświetla listę wszystkich czujników i ich stanu. Oto przykładowe dane wyjściowe polecenia sensor status :
|
sensor get sensor-name
|
Pobiera ustawienia dla: sensor-name . Ten przykład pobiera wartość 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 dwukropkiem.
sensor set acceleration 2.23517e-07:9.77631:0.812348 |
Emulacja SMS-ów | Opis |
sms send sender-phone-number textmessage
|
Generuje emulowane wiadomości przychodzące. Poniższa lista zawiera opis parametrów i ich wartości:
Poniższy przykład wysyła wiadomość „Cześć” na numer telefonu 4085555555: sms send 4085555555 hi there Konsola przekazuje SMS-a do platformy Androida, która przekazuje go do aplikacji w emulatorze, która obsługuje SMS-y, np. do aplikacji Wiadomości. Jeśli prześlesz 10 cyfr, aplikacja sformatuje go jako numer telefonu. Dłuższe lub krótsze ciągi liczbowe pokazują sposób ich wysłania.
|
Symulacja odcisku palca | Opis |
finger touch fingerprint-id
|
Symuluje dotykanie palca palcem. |
finger remove
|
Symuluje usuwanie palca.
Instrukcje korzystania z tych poleceń znajdziesz w sekcji dotyczącej symulowania i weryfikacji odcisku palca poniżej. |
Symulacja i weryfikacja odcisku cyfrowego
Za pomocą polecenia finger
możesz symulować i weryfikować uwierzytelnianie odciskiem palca w aplikacji. Potrzebujesz SDK Tools w wersji 24.3 lub nowszej i Androida 6.0 (poziom interfejsu API 23) lub nowszego.
Aby przeprowadzić symulację i weryfikację uwierzytelniania odciskiem palca, wykonaj te czynności:
- Jeśli nie masz jeszcze identyfikatora odcisku palca, zarejestruj nowy odcisk palca w emulatorze – wybierz Ustawienia > Zabezpieczenia > Odcisk palca i postępuj zgodnie z instrukcjami rejestracji.
- Skonfiguruj aplikację, aby akceptowała uwierzytelnianie odciskiem palca. Po zakończeniu konfiguracji na urządzeniu wyświetli się ekran uwierzytelniania odciskiem palca.
- Gdy w aplikacji wyświetli się ekran uwierzytelniania odciskiem palca, otwórz konsolę i wpisz polecenie
finger touch
oraz utworzony przez siebie identyfikator odcisku palca. To symulacja dotknięcia palcem. - Następnie wpisz polecenie
finger remove
, aby przeprowadzić symulację usuwania palca.Aplikacja powinna zareagować tak, jakby użytkownik dotknął czytnika linii papilarnych, a potem odłączył go od czytnika.