Wysyłaj polecenia konsoli emulatora

Każde uruchomione urządzenie wirtualne udostępnia konsolę, która umożliwia wysyłanie zapytań do emulowanych urządzeń oraz sterowanie nimi. środowisku urządzenia. Za pomocą konsoli możesz na przykład zarządzać przekierowaniem portów, siecią charakterystyki i zdarzeń telefonicznych, gdy aplikacja działa z emulatorem.

Poniższe polecenia wymagają uruchomienia emulatora. Więcej informacje na temat uruchamiania emulatora, zobacz Uruchamianie aplikacji za pomocą emulatora Androida oraz Uruchom emulator z wiersza poleceń.

Rozpoczynanie i zatrzymywanie sesji w konsoli

Aby uzyskać dostęp do konsoli i wpisać polecenia w oknie terminala, naciśnij telnet do połączyć się z portem konsoli i podać token uwierzytelniania. Za każdym razem, gdy konsola wyświetli się OK, aplikacja jest gotowa do akceptowania poleceń. Nie ma typowego promptu.

Aby połączyć się z konsolą uruchomionego urządzenia wirtualnego:

  1. Otwórz okno terminala i wpisz następujące polecenie:
  2. telnet localhost console-port

    Tytuł okna emulatora zawiera numer portu konsoli, gdy jest uruchomiony w osobnym oknie, ale a nie podczas uruchamiania w oknie narzędzia. Na przykład tytuł okna emulatora używającego portu 5554 w konsoli może wynosić Pixel8_API_34:5554. Oprócz tego polecenie adb devices generuje lista uruchomionych urządzeń wirtualnych wraz z numerami portów konsoli. Więcej informacji: Zapytanie dotyczące urządzeń.

    Uwaga: emulator nasłuchuje połączeń na portach od 5554 do 5585. i akceptuje tylko połączenia z localhost.

  3. Gdy w konsoli wyświetli się OK, wpisz polecenie auth auth_token.
  4. Zanim wpiszesz polecenia konsoli, konsola emulatora wymaga uwierzytelnienia. auth_token musi pasują do zawartości pliku .emulator_console_auth_token w katalogu głównym.

    Jeśli taki plik nie istnieje, telnet localhost console-port tworzy plik, który zawiera losowo wygenerowany token uwierzytelniania. Aby wyłączyć do uwierzytelniania, usuń token z .emulator_console_auth_token lub utwórz pusty plik, jeśli taki plik nie istnieje.

  5. Po nawiązaniu połączenia z konsolą wpisz polecenia konsoli.
  6. Wpisz help, help command lub help-verbose aby zobaczyć listę poleceń konsoli i dowiedzieć się więcej na temat poleceń.

  7. Aby zamknąć sesję konsoli, wpisz quit lub exit.

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
    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.

Informacje o poleceniach emulatora

W poniższej tabeli opisano polecenia konsoli emulatora wraz z ich parametrami i wartościami:

Tabela 1. Polecenia konsoli emulatora

Polecenia ogólne Opis
avd {stop|start|status|name} Wykonuje zapytania dotyczące urządzenia wirtualnego i nim zarządza oraz nim zarządza:
  • stop: zatrzymuje uruchamianie urządzenia.
  • start: rozpoczyna uruchamianie urządzenia.
  • status: wysyła zapytanie o stan urządzenia wirtualnego, który może mieć wartość running. lub stopped.
  • name: wykonuje zapytanie o nazwę urządzenia wirtualnego.
avd snapshot {list|save name|load name|delete name} Zapisuje i przywraca stan urządzenia w zrzutach w następujący sposób:
  • list: zawiera listę wszystkich zapisanych zrzutów.
  • save name: zapisuje zrzut jako name.
  • load name: wczytuje nazwany zrzut.
  • delete name: usuwa nazwany zrzut.

Poniższy przykład zapisuje zrzut o nazwie firstactivitysnapshot:

avd snapshot save firstactivitysnapshot
fold Składa urządzenie, aby wyświetlić konfigurację z mniejszym ekranem (jeśli jest składane, rozłożony.
unfold Otwiera urządzenie, aby wyświetlić jego większą konfigurację (jeśli jest składane). złożone.
kill Zatrzymuje urządzenie wirtualne.
ping Sprawdza, czy urządzenie wirtualne jest uruchomione.
rotate Obraca AVD w lewo o 45 stopni.
Wyłącz emulator Opis
crash Powoduje awarię emulatora podczas uruchamiania aplikacji.
crash-on-exit Powoduje awarię emulatora przy zamykaniu aplikacji.
Tagi debugowania Opis
debug tags ...

Włącza lub wyłącza komunikaty debugowania pochodzące z określonych części emulatora. Parametr tags musi być wartością z listy tagów debugowania, która pojawia się, gdy wykonujesz emulator -help-debug-tags. Więcej informacji na temat -help-debug-tags, patrz tabela najczęściej używane opcje.

Poniższy przykład pozwala włączyć tag radio:

debug radio
Przekierowanie portu Opis
redir list Wyświetla listę bieżących przekierowań portów.
redir add protocol:host-port:guest-port Dodaje nowe przekierowanie portów w ten sposób:
  • protocol: musi mieć wartość tcp lub udp.
  • host-port: numer portu do otworzenia na hoście.
  • guest-port: numer portu, na który mają być kierowane dane na za pomocą emulatora.
redir del protocol:host-port Usuwa przekierowanie portów.
  • protocol: musi mieć wartość tcp lub udp.
  • host-port: numer portu do otworzenia na hoście.
Lokalizacja geograficzna Opis

Ustawia lokalizację geograficzną zgłaszaną aplikacjom działającym w emulatorze wysyłając sygnał GPS do emulatora.

Natychmiast po uruchomieniu wirtualnym możesz wydać jedno z poniższych poleceń geo jest uruchomione urządzenie. Emulator ustawia podaną lokalizację, tworząc pozorowaną lokalizację. Ten odpowiada na detektory lokalizacji ustawione przez aplikacje i przekazuje lokalizację LocationManager. Każda aplikacja może wysłać zapytanie do menedżera lokalizacji, aby uzyskać aktualną pozycję GPS dla emulowanego urządzenia Połączenie LocationManager.getLastKnownLocation("gps")

geo fix longitude latitude [altitude] [satellites] [velocity] Wysyła do emulatora prosty sygnał GPS. Podaj longitude i latitude w stopniach dziesiętnych. Wpisz liczbę z zakresu od 1 do 12, aby określić liczbę satellites, aby użyć do określenia pozycji, i określ altitude w metrach, velocity w węzłach.
geo nmea sentence Wysyła zdanie NMEA 0183 do emulowanego urządzenia w taki sposób, jakby zostało wysłane z emulowanego urządzenia Modem GPS. Rozpocznij sentence od „$GP”. Tylko „$GPGGA” i „$GPRCM” zdania są obecnie obsługiwane. Przykład poniżej to zdanie GPGGA (Global Positioning System Fix Data), w którym czas, położenie i dane stałe 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
Zdarzenia związane z fałszywym sprzętem Opis
event types Zawiera listę wszystkich fałszywych typów zdarzeń. W przypadku wydarzeń z kodami liczba kodów jest podana w nawiasy 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 rodzaj zdarzenia.
event codes type Zawiera listę kodów zdarzeń określonego typu fałszywego zdarzenia.
event send type[:code]:[value] [...] Wysyła co najmniej 1 fałszywe wydarzenie z opcjonalnymi kodami i wartościami kodu.

Aby dowiedzieć się, które zdarzenie wysłać, możesz użyć polecenia adb ręcznie naciskając przyciski na emulatorze.

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
      
Aby na przykład symulować naciśnięcie przycisku zasilania, wyślij dwa zdarzenia EV_KEY dla Keydown i Keyupa:
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 symulujący naciśnięcia klawiszy. Wiadomość musi być ciągiem znaków UTF-8. Posty w standardzie Unicode są mapowane wstecznie zgodnie z bieżącą klawiaturą urządzenia i nie są obsługiwane są odrzucane po cichu.
Elementy sterujące stanem zasilania Opis
power display Wyświetla stan baterii i ładowarki.
power ac {on|off} Ustawia stan ładowania AC na on lub off.
power status {unknown|charging|discharging|not-charging|full} Zmienia stan baterii zgodnie z określonym ustawieniem.
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 pozostałą pojemność baterii jako procent od 0 do 100.
Stan połączenia sieciowego Opis
network status Sprawdza stan sieci oraz bieżące parametry opóźnienia i szybkości.
network delay latency

Zmienia emulowane opóźnienie sieciowe.

Emulator pozwala symulować różne poziomy opóźnień sieci, by można było w środowisku bardziej typowym dla rzeczywistego środowiska. Dostępne opcje ustaw poziom lub zakres czasu oczekiwania przy uruchamianiu emulatora. Możesz też użyć funkcji w konsoli, aby zmienić czas oczekiwania, gdy aplikacja działa w emulatorze.

Sieć latency ma jeden z tych formatów (liczby są wyrażone w milisekundach):

Format opóźnienia sieciowego:

  • gprs: GPRS, który korzysta z zakresu czasu oczekiwania od 150 do 550 znaków.
  • edge: EDGE/EGPRS z zakresem czasu oczekiwania wynoszącym od 80 do 400 znaków.
  • umts: UMTS/3G z opóźnieniem w zakresie od 35 do 200.
  • none: brak opóźnienia.
  • num: emuluje określone opóźnienie w milisekundach.
  • min:max: emuluje określony zakres czasu oczekiwania.

Aby ustawić czas oczekiwania podczas uruchamiania emulatora, użyj funkcji -netdelay opcja emulatora z obsługiwana wartość latency podana w poprzednim czasie oczekiwania w sieci . Oto przykłady:

emulator -netdelay gprs
emulator -netdelay 40,100

Aby zmienić opóźnienie sieci, gdy emulator jest uruchomiony, połącz się z konsolą i użyj z polecenia netdelay z obsługiwaną wartością latency z parametru poprzedzającą listę Format opóźnienia sieciowego.

network delay gprs
network delay 40 100
network speed speed Emulator pozwala symulować różne szybkości przesyłania danych w sieci.

Możesz ustawić szybkość lub zakres transferu podczas uruchamiania emulatora albo za pomocą konsoli zmienia szybkość działania aplikacji w emulatorze.

Sieć speed ma jeden z tych formatów (liczby to kilobity/s):

Format szybkości sieci:

  • gsm: GSM/CSD, gdzie szybkość działania wynosi 14,4 w górę i w dół 14,4.
  • hscsd: HSCSD, który korzysta z szybkości 14,4 w górę i 43,2 w dół.
  • gprs: GPRS, który korzysta z szybkości 40,0 w górę i 80,0 w dół.
  • edge: EDGE/EGPRS z szybkością ustawioną na poziomie 118,4 w górę i 236,8 w dół.
  • umts: UMTS/3G, który korzysta z prędkości 128,0 w górę i 1920 w dół.
  • hsdpa: HSDPA, który korzysta z szybkości 348,0 w górę i 14 400,0 w dół.
  • lte: LTE, który działa z prędkością 58 tys. w górę i 173 000 w dół.
  • evdo: EVDO, który wykorzystuje prędkość od 75 000 do 280 000 w górę i 280 000 w dół.
  • full: nieograniczoną szybkość, ale zależy od szybkości połączenia komputera.
  • num: określa dokładną szybkość przesyłania (w kilobitach na sekundę) używaną podczas przesyłania i pobrać.
  • up:down: ustawia dokładne szybkości w kilobitach/s dla: przesłać i pobrać oddzielnie.

Aby ustawić szybkość sieci podczas uruchamiania emulatora, użyj opcji -netspeed opcja emulatora z obsługiwana wartość speed, tak jak w poprzednim formacie szybkości sieci z listy. Oto przykłady:

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 z obsługiwanym Wartość speed z poprzedniej listy Format szybkości sieci.

network speed 14.4 80
network capture {start|stop} file Wysyła pakiety do pliku. Na liście poniżej znajdziesz parametry wartości parametrów:
  • start file: zaczyna wysyłać pakiety do określonego pliku.
  • stop file: zatrzymuje wysyłanie pakietów do określonego pliku.
Emulacja telefonii Opis
Emulator Androida zawiera własny modem GSM i CDMA, który pozwala symulować połączenia telefoniczne. w emulatorze. W GSM można na przykład symulować przychodzące połączenia telefoniczne i ustalać, i zakończyć połączenia do transmisji danych. W przypadku CDMA podajesz źródło subskrypcji i preferowane listę roamingową. System Android obsługuje symulowane połączenia dokładnie tak samo, jak rzeczywiste połączenia. Emulator nie obsługuje dźwięku połączeń.
gsm {call|accept|cancel|busy} phonenumber Parametry gsm:
  • call: symuluje przychodzące połączenie telefoniczne od phonenumber.
  • accept: przyjmuje połączenie przychodzące od: phonenumber i zmienia stan wywołania na active. Dostępne opcje zmienia stan wywołania na active tylko wtedy, gdy obecny stan to waiting lub held.
  • cancel: kończy przychodzące połączenie telefoniczne wychodzące lub przychodzące połączenie telefoniczne z numerem phonenumber.
  • busy: zamyka połączenie wychodzące z: phonenumber i zmienia stan wywołania na busy. Stan połączenia możesz zmienić na busy tylko wtedy, gdy jego bieżący stan to waiting
gsm {data|voice} state Polecenie data state zmienia stan połączenia danych GPRS, a polecenie data voice state zmienia stan głosu GPRS w następujący sposób:
  • unregistered: brak dostępnej sieci.
  • home: w sieci lokalnej, bez roamingu.
  • roaming: w sieci roamingowej.
  • searching: szukam sieci.
  • denied: tylko połączenia alarmowe.
  • off: taki sam jak unregistered.
  • on: taki sam jak home.
gsm hold Zmienia stan wywołania na hold. Możesz zmienić stan wywołania 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 te opisanych dla poleceń voice i data.
gsm signal {rssi|ber} W kolejnych 15 zmienia siłę sygnału (rssi) i liczbę błędów transmisji bitów (ber). sekund aktualizacji. Poniższa lista zawiera opis parametrów i ich wartości:
  • Zakres rssi wynosi od 0 do 31 i 99 (nieznane).
  • Zakres ber wynosi od 0 do 7 i 99 (nieznane).
gsm signal-profile num Określa profil siły sygnału. num jest liczbą od 0 do 4.
cdma ssource source Ustawia bieżące źródło subskrypcji CDMA, gdzie source to sieciowa lista dozwolonych, która zawiera Subskrybenci operatora CDMA wraz z ich wartościami:
  • nv: odczytuje subskrypcję z nieulotnej pamięci RAM.
  • ruim: odczytuje subskrypcję z modułu Removable User Identity Module (RUIM).
cdma prl_version version Usuwa bieżącą wersję preferowanej listy roamingowych (PRL). Numer wersji dotyczy listy PRL baza danych zawierająca informacje używane podczas procesu wyboru i pozyskiwania systemu.
Zarządzaj czujnikami w emulatorze Opis
Te polecenia odnoszą się do które czujniki są dostępne w AVD. Poza używaniem polecenia sensor możesz będzie mógł wyświetlać i zmieniać ustawienia emulatora na ekranie Czujniki wirtualne w karty Akcelerometr i Dodatkowe czujniki.
sensor status Zawiera listę wszystkich czujników i ich stan. Poniżej znajdziesz przykładowe dane wyjściowe funkcji Polecenie sensor status:
sensor get sensor-name Pobiera ustawienia dla zakresu: sensor-name. W poniższym przykładzie wartość czujnika przyspieszenia:
sensor get acceleration
acceleration = 2.23517e-07:9.77631:0.812348

Wartości acceleration rozdzielone dwukropkami(:) odnoszą się do wartości x, y i z i czujniki wirtualne.

sensor set sensor-name value-x:value-y:value-z Ustawia wartości dla funkcji sensor-name. Ten przykład ustawia czujnik przyspieszenia do 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 emulowane przychodzące SMS-y. Na liście poniżej znajdziesz parametry ich wartości:
  • sender-phone-number: zawiera dowolny ciąg liczbowy.
  • textmessage: SMS.

Poniższy przykład wysyła wiadomość „Cześć” pod numer telefonu 4085555555:

sms send 4085555555 hi there

Konsola przekazuje SMS-a do platformy Androida, która przekazuje go do w emulatorze, który obsługuje SMS-y, np. Wiadomości. Jeśli przekażesz 10 cyfr, formatuje go jako numer telefonu. Dłuższe lub krótsze ciągi liczbowe pokazują sposób od Ciebie.

Symulacja odcisku palca Opis
finger touch fingerprint-id Symuluje palec dotykający czujnika.
finger remove Symuluje usunięcie palca.

Instrukcje używania tych poleceń znajdziesz w sekcji poniżej symulacji i walidacji odcisku palca.

Symulacja i weryfikacja odcisku palca

Rysunek 1. Ekran uwierzytelniania odciskiem palca.

Użyj polecenia finger, aby zasymulować i zweryfikować uwierzytelnianie odciskiem palca na urządzeniu . Potrzebujesz pakietu SDK Tools w wersji 24.3 lub nowszej i Androida 6.0 (poziom interfejsu API 23) lub nowszego.

Aby przeprowadzić symulację i zweryfikować uwierzytelnianie odciskiem palca, wykonaj te czynności:

  1. Jeśli nie masz jeszcze identyfikatora odcisku palca, zarejestruj nowy odcisk palca w emulatorze wybierając Ustawienia > Bezpieczeństwo > Odcisk palca i postępuj zgodnie z instrukcje rejestracji.
  2. Skonfiguruj aplikację tak, aby akceptowała odcisk cyfrowy Po przeprowadzeniu tej konfiguracji urządzenie wyświetli odcisk palca ekranu uwierzytelniania.
  3. Gdy w aplikacji wyświetli się ekran uwierzytelniania odciskiem palca, otwórz konsolę i wpisz polecenie finger touch i utworzony identyfikator odcisku palca. Ten symuluje dotknięcie palca.
  4. Następnie wpisz polecenie finger remove, aby zasymulować usuwanie palca.

    Aplikacja powinna reagować tak, jakby użytkownik dotknął, a potem wysunął palec czytnik linii papilarnych.