Każde uruchomione urządzenie wirtualne udostępnia konsolę, która umożliwia wysyłanie zapytań i sterowanie emulowanym środowiskiem urządzenia. Możesz na przykład używać konsoli do zarządzania przekierowaniem portów, charakterystyką sieci i zdarzeniami telefonicznymi, gdy aplikacja jest uruchomiona na emulatorze.
Poniższe polecenia wymagają uruchomionego emulatora. 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 protokołu 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 promptu.
Aby połączyć się z konsolą działającego urządzenia wirtualnego:
Otwórz okno terminala i wpisz to polecenie:
telnet localhost console-portTytuł okna emulatora zawiera numer portu konsoli, gdy emulator jest uruchomiony w osobnym oknie, ale nie wtedy, gdy jest uruchomiony 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 deviceswyświetla listę uruchomionych urządzeń wirtualnych i numery portów konsoli. Więcej informacji znajdziesz w artykule Wysyłanie zapytań o urządzenia.Uwaga: emulator nasłuchuje połączeń na portach 5554–5585 i akceptuje połączenia tylko z hosta lokalnego.
Gdy konsola wyświetli OK, wpisz polecenie
auth auth_token.Zanim będzie można wpisać polecenia konsoli, konsola emulatora wymaga uwierzytelnienia.
auth_tokenmusi być zgodny z zawartością pliku.emulator_console_auth_tokenw katalogu domowym.Jeśli ten plik nie istnieje, polecenie
telnet localhost console-portutworzy plik zawierający losowo wygenerowany token uwierzytelniania. Aby wyłączyć uwierzytelnianie, usuń token z pliku.emulator_console_auth_tokenlub utwórz pusty plik, jeśli nie istnieje.Po połączeniu z konsolą wpisz polecenia konsoli.
Wpisz
help,help commandlubhelp-verbose, aby wyświetlić listę poleceń konsoli i dowiedzieć się więcej o poszczególnych poleceniach.Aby zakończyć sesję konsoli, wpisz
quitlubexit.
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.
Polecenia typu „wystrzel i zapomnij”
Jeśli nie musisz mieć otwartej sesji, użyj skrótu adb emu, który wykonuje polecenie i natychmiast przywraca kontrolę do powłoki wywołującej:
adb emu command commandParameter
Wywołanie za pomocą adb emu łączy się z dostępnym emulatorem. Jeśli masz kilka emulatorów działających w tym samym czasie, musisz przekazać numer seryjny konkretnego emulatora, na którym chcesz przeprowadzić test:
adb -s emulator-serial emu command commandParameter
Dokumentacja poleceń emulatora
Poniżej znajdziesz listę poleceń konsoli emulatora wraz z parametrami i wartościami:
Polecenia ogólne
avd {stop| start| status| name}Wysyła zapytania do urządzenia wirtualnego, steruje nim i zarządza nim w ten sposób:- stop: zatrzymuje wykonywanie na urządzeniu.
- start: rozpoczyna wykonywanie urządzenia.
- status: wysyła zapytanie o stan urządzenia wirtualnego, który może być uruchomiony lub zatrzymany.
- name: wysyła 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: wyświetla listę wszystkich zapisanych zrzutów.
- save name: zapisuje zrzut pod nazwą.
- load name: wczytuje zrzut o podanej nazwie.
- delete name: usuwa zrzut o podanej nazwie.
Poniższy przykład zapisuje podsumowanie danych pod nazwą
firstactivitysnapshot:avd snapshot save firstactivitysnapshotfold: składa urządzenie, aby wyświetlić mniejszą konfigurację ekranu, jeśli urządzenie jest składane i obecnie rozłożone.
rozłóż: rozkłada urządzenie, aby wyświetlić większy ekran, jeśli urządzenie jest składane i jest obecnie złożone.
kill: zamyka urządzenie wirtualne.
ping: sprawdza, czy urządzenie wirtualne jest uruchomione.
rotate: obraca AVD w lewo co 45 stopni.
Awaria emulatora
crash: powoduje awarię emulatora podczas wykonywania aplikacji.
crash-on-exit: powoduje awarię emulatora po zamknięciu aplikacji.
Debugowanie tagów
debug tags ...: włącza i wyłącza komunikaty debugowania z określonych części emulatora. Parametr tags musi mieć wartość z listy tagów debugowania, która pojawia się po wykonaniu polecenia
emulator -help-debug-tags. Więcej informacji o opcji-help-debug-tagsznajdziesz w tabeli najczęściej używanych opcji. Poniższy przykład włącza tag radia:debug radio
Przekierowanie portu
redir list: wyświetla bieżące przekierowanie portu.
redir add protocol:host-port:guest-portDodaje nowe przekierowanie portu w ten sposób:- protocol: musi to być tcp lub udp.
- host-port: numer portu do otwarcia na hoście.
- guest-port: numer portu, do którego mają być kierowane dane na emulatorze.
redir del protocol:host-portUsuwa przekierowanie portu.- protocol: musi być to tcp lub udp.
- host-port: numer portu do otwarcia na hoście.
Położenie geograficzne
Ustawia położenie geograficzne zgłaszane do aplikacji działających w emulatorze, wysyłając do niego poprawkę GPS.
Gdy tylko urządzenie wirtualne zacznie działać, możesz wydać jedno z tych poleceń geograficznych. Emulator ustawia wpisaną lokalizację, tworząc pozornego dostawcę lokalizacji. Ten dostawca odpowiada na odbiorniki lokalizacji ustawione przez aplikacje i przekazuje lokalizację do LocationManager. Każda aplikacja może wysyłać zapytania do menedżera lokalizacji, aby uzyskać bieżącą lokalizację GPS emulowanego urządzenia, wywołując funkcję
LocationManager.getLastKnownLocation("gps").
geo fix longitude latitude [altitude] [satellites] [velocity]: wysyła do emulatora prostą poprawkę GPS. Określ długość i szerokość geograficzną w stopniach dziesiętnych. Użyj liczby od 1 do 12, aby określić liczbę satelitów, które mają być używane do określania pozycji, oraz podaj wysokość w metrach i prędkość 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. Zacznij zdanie od „$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 ustaleniu pozycji 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
Podsystem zdarzeń sprzętowych w konsoli emulatora umożliwia symulowanie niemal każdej fizycznej interakcji z urządzeniem. Obejmuje to przyciski fizyczne, dotyk/gesty na ekranie, pokrętła, joysticki i przełączniki sprzętowe.
typy zdarzeń: 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. Przykładowe dane wyjściowe:
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 OKevent send types [types ...]: wysyła co najmniej 1 rodzaj fałszywych zdarzeń.
event codes type (typ kodów zdarzeń): 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.
EV_KEY – odwołania do kodów kluczy
Typ zdarzenia EV_KEY służy do symulowania naciśnięć i puszczeń przycisków. W tabelach poniżej podzieliliśmy długą listę obsługiwanych kodów kluczy na logiczne kategorie. W przypadku każdego kodu klucza wysłanie wartości 1 symuluje naciśnięcie, a wartości 0 – zwolnienie. Wartość 2 oznacza powtórzenie klucza.
Podtabela A: klucze systemowe Androida
| Kod | Opis |
|---|---|
KEY_HOME |
Przycisk ekranu głównego |
KEY_BACK |
Aktywator przycisku Wstecz |
KEY_MENU |
Przycisk menu (rozwijania) |
KEY_POWER |
Przycisk zasilania (naciśnięcie/przytrzymanie) |
KEY_VOLUMEUP |
Reguła oparta na przycisku zwiększania głośności |
KEY_VOLUMEDOWN |
Reguła oparta na przycisku Zmniejsz głośność |
KEY_CAMERA |
Fizyczny przycisk migawki aparatu |
KEY_FOCUS |
Migawka autofokusa aparatu |
KEY_SEARCH |
Reguła przycisku wyszukiwania |
KEY_SLEEP |
Aktywator polecenia uśpienia |
KEY_WAKEUP |
Wyzwalacz polecenia wybudzania |
KEY_NOTIFICATION |
Otwórz panel powiadomień |
KEY_MUTE |
Wyciszanie wyjścia audio systemu |
KEY_MICMUTE |
Wyciszanie dźwięku z mikrofonu |
KEY_BRIGHTNESSDOWN |
Zmniejsz jasność wyświetlacza |
KEY_BRIGHTNESSUP |
Zwiększanie jasności wyświetlacza |
KEY_PHONE |
Otwieranie domyślnej aplikacji telefonicznej |
KEY_SEND |
Wysyłanie SMS-ów lub nawiązywanie połączeń telefonicznych |
KEY_HEADSETHOOK |
Zaczep zestawu słuchawkowego (odbieranie/rozłączanie) |
KEY_SCREEN |
Polecenie aktywacji wygaszacza ekranu |
KEY_CONFIG |
Menu konfiguracji systemu |
KEY_SWITCHVIDEOMODE |
Przełączanie trybu wideo systemu |
KEY_KBDILLUMTOGGLE |
Przełączanie podświetlenia klawiatury |
Podtabela B. Multimedia i elementy sterujące odtwarzaniem
| Kod | Opis |
|---|---|
KEY_PLAYPAUSE |
Przełączanie stanu odtwarzania i wstrzymywania |
KEY_PLAY |
rozpocząć odtwarzanie multimediów, |
KEY_PAUSECD |
Wstrzymywanie odtwarzania płyty CD |
KEY_STOPCD |
Zatrzymywanie odtwarzania płyty CD |
KEY_NEXTSONG |
Przejdź do następnego utworu |
KEY_PREVIOUSSONG |
Przejdź do poprzedniego utworu |
KEY_REWIND |
Przewijanie aktywnej ścieżki do tyłu |
KEY_FASTFORWARD |
Szybkie przewijanie aktywnej ścieżki do przodu |
KEY_RECORD |
Polecenie wyzwalające nagrywanie |
KEY_SHUFFLE |
Włączanie i wyłączanie odtwarzania losowego |
KEY_REPEAT |
Włączanie i wyłączanie powtarzania odtwarzania |
KEY_MEDIA |
Aktywator klawisza multimedialnego |
Podtabela C: klawiatury nawigacyjne i ogólne
| Kod | Opis |
|---|---|
KEY_UP |
Kierunek przycisku w górę na padzie kierunkowym |
KEY_DOWN |
Kierunek w dół na padzie kierunkowym |
KEY_LEFT |
Kierunek w lewo na padzie kierunkowym |
KEY_RIGHT |
Kierunek w prawo na padzie kierunkowym |
KEY_PAGEUP |
Nawigacja w górę strony |
KEY_PAGEDOWN |
Nawigacja w dół strony |
KEY_INSERT |
Wstawianie wyzwalacza klawisza |
KEY_DELETE |
Usuwanie aktywatora klawisza |
KEY_ENTER |
Wywołanie klawiszem Enter |
KEY_ESC |
Aktywator klawisza Escape |
KEY_TAB |
Wywoływanie za pomocą klawisza Tab |
KEY_SPACE |
Wywoływanie za pomocą spacji |
KEY_BACKSPACE |
Aktywator klawisza Backspace |
KEY_CLEAR |
Wyczyść bufor wejściowy |
KEY_CANCEL |
Anulowanie aktywnego działania |
KEY_OK |
Potwierdź/OK |
KEY_SELECT |
Aktywator wyboru elementu |
KEY_GOTO |
Przejdź do wyznaczonego miejsca |
KEY_HELP |
Dostęp do kontekstu pomocy |
Podtabela D: znaki alfanumeryczne i symbole klawiatury numerycznej
- Litery alfabetu standardowego:
KEY_A–KEY_Z(26 kodów). - Klawisze klawiatury numerycznej:
KEY_1–KEY_0(10 kodów).
| Kod | Symbol znaku |
|---|---|
KEY_COMMA |
, |
KEY_DOT |
. |
KEY_SLASH |
/ |
KEY_SEMICOLON |
; |
KEY_APOSTROPHE |
' |
KEY_GRAVE |
\` |
KEY_MINUS |
- |
KEY_EQUAL |
= |
KEY_LEFTBRACE |
[ |
KEY_RIGHTBRACE |
] |
KEY_BACKSLASH |
\ |
KEY_KPASTERISK |
* (Klawiatura numeryczna) |
KEY_KPPLUS |
+ (Klawiatura numeryczna) |
KEY_KPMINUS |
- (Klawiatura numeryczna) |
KEY_KPDOT |
. (Klawiatura numeryczna) |
KEY_KPSLASH |
/ (Klawiatura numeryczna) |
KEY_KPENTER |
Enter (klawiatura numeryczna) |
KEY_KPEQUAL |
= (Klawiatura numeryczna) |
KEY_KPCOMMA |
, (Klawiatura numeryczna) |
KEY_KPJPCOMMA |
, (układ japoński) |
KEY_KPLEFTPAREN |
( (Klawiatura numeryczna) |
KEY_KPRIGHTPAREN |
) (Klawiatura numeryczna) |
KEY_KPPLUSMINUS |
± (Klawiatura numeryczna) |
Podtabela E: klawisze modyfikujące i funkcyjne
- Standardowe klawisze funkcyjne:
KEY_F1–KEY_F24(24 kody).
| Kod | Opis |
|---|---|
KEY_LEFTSHIFT |
Modyfikator klawiatury Lewy Shift |
KEY_RIGHTSHIFT |
Modyfikator klawiatury Shift po prawej stronie |
KEY_LEFTCTRL |
Modyfikator klawiatury Lewy Control |
KEY_RIGHTCTRL |
Klawisz modyfikujący prawy Ctrl |
KEY_LEFTALT |
Klawisz modyfikatora Lewy Alt |
KEY_RIGHTALT |
Klawisz modyfikatora Alt po prawej stronie |
KEY_LEFTMETA |
Lewy klawisz Meta/Command |
KEY_RIGHTMETA |
Prawy klawisz Meta/Command |
KEY_CAPSLOCK |
Przełącznik klawiatury Caps Lock |
KEY_NUMLOCK |
Przełącznik klawiatury Num Lock |
KEY_SCROLLLOCK |
Przełącznik klawiatury Scroll Lock |
KEY_COMPOSE |
Kompozytor znaków |
KEY_FN |
Klawisz FN na klawiaturze fizycznej |
KEY_FN_ESC |
Kombinacje klawiszy funkcyjnych |
KEY_FN_1 |
Skrót do funkcji specjalnej 1 |
KEY_FN_2 |
Skrót do funkcji specjalnej 2 |
KEY_FN_D |
Skrót funkcji specjalnej D |
KEY_FN_E |
Skrót do funkcji specjalnej E |
KEY_FN_F |
Skrót funkcji specjalnej F |
KEY_FN_S |
Skrót funkcji specjalnej S |
KEY_FN_B |
Skrót funkcji specjalnej B |
Podtabela F. Pady do gier i joysticki
| Kod | Opis |
|---|---|
BTN_A / BTN_B / BTN_C |
Przyciski A/B/C na kontrolerze |
BTN_X / BTN_Y / BTN_Z |
Przyciski na górze kontrolera X/Y/Z |
BTN_START |
Przycisk menu Start na padzie do gier |
BTN_SELECT |
Przycisk wyboru na padzie do gier |
BTN_MODE |
Przełącznik trybu kontrolera |
BTN_TL/BTN_TR |
Lewy / prawy bumper |
BTN_TL2/BTN_TR2 |
Lewy / prawy spust analogowy |
BTN_THUMBL/BTN_THUMBR |
Kliknięcia lewą lub prawą gałką |
BTN_DPAD_UP |
Aktywator Pad kierunkowy – w górę |
BTN_DPAD_DOWN |
Aktywator Pad kierunkowy w dół |
BTN_DPAD_LEFT |
Lewy spust na padzie kierunkowym do gier |
BTN_DPAD_RIGHT |
Prawy spust na padzie kierunkowym |
BTN_THUMB |
Główny przycisk dżojstika |
BTN_TOP/BTN_TOP2 |
Przyciski górne joysticka |
BTN_PINKIE |
Przyciski dżojstika obsługiwane małym palcem |
Od BTN_BASE do _BASE6 |
Przyciski podstawy platformy joysticka |
BTN_DEAD |
Flaga strefy martwej nieaktywnego gamepada |
BTN_TRIGGER |
Fizyczny joystick z uchwytem |
BTN_JOYSTICK |
Ogólny kod wejściowy joysticka |
Podtabela G. Wprowadzanie za pomocą myszy, dotyku i rysika
| Kod | Opis |
|---|---|
BTN_MOUSE |
Ogólne zdarzenie wskaźnika myszy |
BTN_LEFT |
Kliknięcie lewym przyciskiem myszy |
BTN_RIGHT |
Kliknięcie prawym przyciskiem myszy |
BTN_MIDDLE |
Kliknięcie środkowym przyciskiem kółka przewijania |
BTN_SIDE |
Reguła przycisku bocznego nawigacji |
BTN_EXTRA |
Dodatkowy przycisk myszy |
BTN_FORWARD |
Kliknięcie przycisku nawigacji do przodu w przeglądarce |
BTN_BACK |
Kliknięcie przycisku nawigacji wstecz w przeglądarce |
BTN_TASK |
Klawisz przełączania zadań systemowych |
BTN_TOUCH |
Wykryto fizyczny kontakt z ekranem |
BTN_STYLUS |
Bliskość aktywnego rysika |
BTN_STYLUS2 |
Dodatkowy przycisk na rysiku |
BTN_TOOL_PEN |
Identyfikator narzędzia rysika |
BTN_TOOL_RUBBER |
Identyfikator narzędzia gumki rysika |
BTN_TOOL_BRUSH |
Identyfikator narzędzia Pędzel malarski |
BTN_TOOL_PENCIL |
Identyfikator narzędzia ołówek techniczny |
BTN_TOOL_AIRBRUSH |
Identyfikator narzędzia do malowania aerografem |
BTN_TOOL_FINGER |
Dotykanie ekranu palcem |
BTN_TOOL_MOUSE |
Zewnętrzny identyfikator narzędzia myszy |
BTN_TOOL_LENS |
Narzędzie soczewki powiększającej |
BTN_TOOL_DOUBLETAP |
Flaga szybkości dwukrotnego dotknięcia gestem |
BTN_TOOL_TRIPLETAP |
Flaga szybkości trzykrotnego kliknięcia gestem |
Podtabela H. Skróty do aplikacji
| Kod | Działanie docelowe |
|---|---|
KEY_WWW |
Uruchamia domyślną przeglądarkę |
KEY_MAIL |
Otwiera domyślnego klienta poczty e-mail |
KEY_BOOKMARKS |
Otwiera listę zakładek przeglądarki |
KEY_CALC |
Otwiera narzędzie Kalkulator |
KEY_FILE |
Otwiera eksplorator plików lokalnych |
KEY_EDIT |
Aktywator edycji dokumentu |
KEY_NEW |
Aktywator utworzenia nowego dokumentu |
KEY_OPEN |
Aktywator otwarcia dokumentu |
KEY_SAVE |
Aktywator zadania zapisywania pliku |
KEY_CLOSE |
Aktywator zadania zamknięcia pliku |
KEY_PRINT |
Aktywator zadania drukowania pliku |
KEY_COPY |
Kopiowanie do schowka |
KEY_PASTE |
Działanie wstawiania z bufora schowka |
KEY_CUT |
Działanie wycinania bufora schowka |
KEY_UNDO |
Cofanie działania w buforze schowka |
KEY_REDO |
Ponowienie działania w buforze schowka |
KEY_CANCEL |
Aktywator procesu anulowania bufora |
KEY_FIND |
Narzędzie do wyszukiwania dokumentów |
KEY_REFRESH |
Narzędzie do odświeżania dokumentów |
KEY_EXIT |
Narzędzie do zamykania dokumentów |
KEY_DOCUMENTS |
Uruchamia portal dokumentów systemowych |
KEY_HOMEPAGE |
Uruchamia przeglądarkę strony głównej |
KEY_FAVORITES |
Otwiera portal ulubionych w przeglądarce |
KEY_CHAT |
Uruchamia komunikator internetowy |
KEY_EMAIL |
Aktywator uruchamiający dodatkowy e-mail |
KEY_FINANCE |
Otwieranie narzędzia do obsługi akcji lub finansów |
KEY_SPORT |
Otwieranie narzędzia do śledzenia sportu |
KEY_SHOP |
Otwórz portal zakupów cyfrowych |
KEY_PLAYER |
Otwórz główny odtwarzacz multimediów |
KEY_MP3 |
Otwórz główny odtwarzacz MP3 |
KEY_TEXT |
Otwieranie domyślnego edytora tekstu |
KEY_LIST |
Otwórz narzędzie do tworzenia list kontrolnych |
KEY_MEMO |
Otwórz notatnik / narzędzie do tworzenia notatek |
KEY_CALENDAR |
Otwiera portal kalendarza lub harmonogramu |
KEY_DIRECTORY |
Otwiera systemowy katalog adresów |
KEY_COMPUTER |
Otwiera eksplorator specyfikacji |
KEY_TV/KEY_TV2 |
Uruchomienie portalu telewizyjnego |
KEY_RADIO |
Uruchamia radio |
KEY_CD/KEY_DVD |
Aktywuje czytnik napędu optycznego |
KEY_AUDIO/KEY_VIDEO |
Dostęp do specyfikacji multimediów |
KEY_TUNER |
Konfigurowanie odbiorników/tunerów |
KEY_SAT/KEY_SAT2 |
Konfigurowanie plików danych satelitarnych |
KEY_TAPE |
Odtwarzanie taśm |
KEY_VCR |
Odtwórz kanał odtwarzacza VCR |
KEY_VCR2 |
Odtwórz kanał VCR 2 |
KEY_AUX |
Wejścia portów multimediów dodatkowych |
KEY_SETUP |
Menu konfiguracji |
Od KEY_PROG1 do _PROG4 |
Klucze programu zdefiniowane przez użytkownika |
KEY_ZOOM |
Przełącznik powiększenia widocznego obszaru |
KEY_MODE |
Wybór trybu widocznego obszaru |
KEY_KEYBOARD |
Wyświetlanie i ukrywanie klawiatury wirtualnej |
KEY_LANGUAGE |
Przełączanie języka ścieżki audio |
KEY_TITLE |
Otwieranie opcji tytułu multimediów |
KEY_SUBTITLE |
Włączanie i wyłączanie interfejsu napisów |
KEY_ANGLE |
Zmiana kątów kamery wideo |
KEY_EPG |
Otwieranie elektronicznego przewodnika po programach |
KEY_PVR |
Otwórz osobisty rejestrator wideo |
KEY_MHP |
Otwórz platformę multimedialną |
KEY_CHANNEL |
Otwieranie kanałów tunera TV |
KEY_CHANNELUP |
Przełączanie kanału telewizyjnego w górę |
KEY_CHANNELDOWN |
Przełączanie kanału telewizyjnego w dół |
KEY_RED |
Czerwony interaktywny przycisk |
KEY_GREEN |
Zielony przycisk interaktywny |
KEY_YELLOW |
Żółty przycisk interaktywny |
KEY_BLUE |
Niebieski przycisk interaktywny |
KEY_FIRST |
Wybierz opcję pierwszego elementu |
KEY_LAST |
Wybierz opcję ostatniego elementu |
KEY_NEXT |
Wybierz następną opcję ścieżki |
KEY_PREVIOUS |
Wybierz poprzednią opcję ścieżki |
KEY_RESTART |
Uruchom ponownie pętlę ścieżki multimediów |
KEY_SLOW |
Opcja odtwarzania w zwolnionym tempie |
KEY_AB |
Pętla sekwencji powtarzania A–B |
KEY_PLAYCD |
Polecenie odtwarzania CD |
KEY_PAUSECD |
Polecenie wstrzymania odtwarzacza CD |
KEY_STOPCD |
Polecenie zatrzymania odtwarzania płyty CD |
KEY_DIGITS |
Polecenie wpisywania na klawiaturze cyfrowej |
KEY_TEEN |
Opcja wartości nastolatków na klawiaturze |
KEY_TWEN |
Opcja wartości twen na klawiaturze |
KEY_DEL_EOL |
Usuń do końca bufora wiersza |
KEY_DEL_EOS |
Usuń do końca bufora ekranu |
KEY_INS_LINE |
Wstaw bufor nowego wiersza |
Od KEY_BRL_DOT1 do _DOT8 |
Dane wejściowe przycisków monitora brajlowskiego |
KEY_VOICECOMMAND |
Uruchamia aplikację asystenta głosowego |
KEY_SELECTIVE_SCREEN |
Uruchamia wycinanie fragmentu ekranu |
KEY_BATTERY |
Wysyła zapytania o powiadomienia dotyczące baterii |
KEY_STAR/KEY_SHARP |
Symbole na klawiaturze telefonu |
KEY_PLUS |
Klawiatura telefonu ze znakiem plusa |
KEY_INFO |
Pokaż nakładkę panelu informacyjnego |
KEY_TIME |
Wyświetlanie aktualnej godziny |
KEY_VENDOR |
Zapytania dotyczące specyfikacji dostawcy |
KEY_ARCHIVE |
Otwiera lokalne narzędzie do archiwizacji |
KEY_PROGRAM |
Konfigurowanie parametrów programu |
KEY_POWER2 |
Uruchamia alternatywne zasilanie awaryjne |
EV_ABS – zdarzenia ruchu bezwzględnego
Typ zdarzenia EV_ABS jest kluczowy w przypadku symulowania precyzyjnych dotknięć, gestów przeciągania i upuszczania, gestów uszczypnięcia wieloma palcami oraz regulacji joysticka. Współrzędne bezwzględne poniżej mapy są bezpośrednio powiązane z rozdzielczością fizyczną ekranu.
| Kod | Zakres współrzędnych | Opis |
|---|---|---|
ABS_MT_TRACKING_ID |
-1 lub ≥0 |
Identyfikator śledzenia; -1 kończy dotyk |
ABS_MT_POSITION_X |
Od 0 do 1767 |
Współrzędna X (Pixel Fold) |
ABS_MT_POSITION_Y |
Od 0 do 2207 |
Współrzędna Y (Pixel Fold) |
ABS_MT_TOUCH_MAJOR |
pikseli | Szerokość głównej osi obszaru dotykowego |
ABS_MT_TOUCH_MINOR |
pikseli | Szerokość osi mniejszej obszaru dotykowego |
ABS_MT_WIDTH_MAJOR |
pikseli | Szerokość osi głównej narzędzia |
ABS_MT_WIDTH_MINOR |
pikseli | Szerokość osi mniejszej narzędzia |
ABS_MT_ORIENTATION |
Od 0 do 255 |
Kąt orientacji kontaktu |
ABS_MT_PRESSURE |
Od 0 do 255 |
Wartość siły kontaktu |
ABS_MT_DISTANCE |
mm | Odległość od ekranu |
ABS_MT_TOOL_TYPE |
Od 0 do 2 |
0 – palec, 1 – rysik, 2 – ołówek |
ABS_MT_BLOB_ID |
liczba całkowita | Identyfikator obiektu blob kontaktu |
ABS_MT_TOOL_X |
pikseli | Współrzędna położenia narzędzia na osi X |
ABS_MT_TOOL_Y |
pikseli | Współrzędna położenia narzędzia na osi Y |
ABS_MT_SLOT |
Od 0 do N |
Aktywne gniazdo (protokół B) |
ABS_X / _Y / _Z |
analogowe | Osie współrzędnych joysticka |
ABS_RX / _RY / _RZ |
analogowe | Osie obrotu joysticka |
ABS_THROTTLE/_BRAKE |
analogowe | Pedały i elementy sterujące |
ABS_HAT0X/_HAT0Y |
-1 / 0 / 1 |
Pad kierunkowy i przełączniki POV |
ABS_PRESSURE |
Od 0 do 255 |
Poziom siły nacisku rysika lub wskaźnika |
ABS_DISTANCE |
mm | Odległość w zawieszeniu (rysik) |
ABS_TILT_X/_TILT_Y |
stopnie | Kąty nachylenia rysika |
ABS_VOLUME |
analogowe | Poziomy głośności kontrolera |
Interakcja dotykowa na Androidzie jest oparta na protokołach Multi-touch (MT). Nowoczesne emulatory implementują zarówno protokół A (bezstanowy, wysyłający pakiety kontaktów oddzielone znakami synchronizacji), jak i protokół B (stanowy, przypisujący kontakty do dedykowanych miejsc śledzenia). Protokół B umożliwia wydajne śledzenie wielu jednoczesnych dotknięć w przypadku gestów takich jak uszczypnięcie w celu powiększenia.
EV_REL i EV_SW – ruch i przełączniki sprzętowe
Kategoria zdarzeń EV_REL zarządza względnymi zmianami wskaźnika lub współrzędnych, które są używane głównie do emulowania ruchów zewnętrznej myszy lub przewijania kółkiem. Kategoria zdarzeń EV_SW zarządza przełącznikami urządzeń fizycznych, np. informuje, czy telefon z klapką lub tablet jest złożony, czy włożono zewnętrzne urządzenie audio.
| Kod | Wartości | Opis |
|---|---|---|
REL_X |
Delta | Ruch kursora w poziomie |
REL_Y |
Delta | Przesuwanie kursora w pionie |
SW_LID |
0/1 |
Stan pokrywy laptopa (0=otwarta, 1=zamknięta) |
SW_TABLET_MODE |
0/1 |
Stan trybu tabletu (0=wyłączony, 1=aktywny) |
SW_HEADPHONE_INSERT |
0/1 |
Stan gniazda słuchawkowego (0=wyjęte, 1=włożone) |
SW_MICROPHONE_INSERT |
0/1 |
Stan gniazda mikrofonu (0=wyjście, 1=wejście) |
Składnia wysyłania poleceń
Aby wysłać te kody, sformatuj polecenie konsoli, oddzielając typy, kody i wartości dwukropkami. Możesz umieścić w kolejce wiele zmian współrzędnych w jednym ciągu znaków. Co ważne, zawsze dodawaj znak synchronizacji końcowej (EV_SYN:0:0), aby wskazać, że platforma emulatora powinna połączyć i przetworzyć te dane wejściowe razem.
Przykłady skryptów zdarzeń i gestów
Protokół Telnet umożliwia wysyłanie parametrów wieloczęściowych, dzięki czemu możesz symulować realistyczne sekwencje gestów fizycznych. Poniżej znajdziesz struktury skryptów zdarzeń w formie nieprzetworzonej, które umożliwiają automatyzację gestów z konsoli hosta.
Symulowanie kliknięcia ekranu
Aby wykonać czyste dotknięcie ekranu we współrzędnych docelowych, przypisz identyfikator śledzenia, określ współrzędne X i Y na ekranie, zasymuluj dotyk, zsynchronizuj, a następnie zwolnij.
# Press down at coordinate (400, 800) and sync
event send EV_ABS:ABS_MT_TRACKING_ID:1
OK
event send EV_ABS:ABS_MT_POSITION_X:400
OK
event send EV_ABS:ABS_MT_POSITION_Y:800
OK
event send EV_KEY:BTN_TOUCH:1
OK
event send EV_SYN:0:0
OK
# Lift finger up and sync
event send EV_ABS:ABS_MT_TRACKING_ID:-1
OK
event send EV_KEY:BTN_TOUCH:0
OK
event send EV_SYN:0:0
OK
Symulowanie przewijania pionowego (przesunięcia)
Aby wykonać gest przewijania, przytrzymaj kontakt w początkowych współrzędnych, wyślij pośrednie klatki współrzędnych ruchu i zwolnij kontakt na końcu.
# Finger touch down at start coordinate (500, 1600)
event send EV_ABS:ABS_MT_TRACKING_ID:2
OK
event send EV_ABS:ABS_MT_POSITION_X:500
OK
event send EV_ABS:ABS_MT_POSITION_Y:1600
OK
event send EV_KEY:BTN_TOUCH:1
OK
event send EV_SYN:0:0
OK
# Move coordinates upward dynamically
event send EV_ABS:ABS_MT_POSITION_Y:1200
OK
event send EV_SYN:0:0
OK
event send EV_ABS:ABS_MT_POSITION_Y:800
OK
event send EV_SYN:0:0
OK
event send EV_ABS:ABS_MT_POSITION_Y:400
OK
event send EV_SYN:0:0
OK
# Finger release at coordinate (500, 400)
event send EV_ABS:ABS_MT_TRACKING_ID:-1
OK
event send EV_KEY:BTN_TOUCH:0
OK
event send EV_SYN:0:0
OK
Symulowanie gestu rozciągania palców
Aby wywołać powiększenie dwoma palcami, użyj aktywnych slotów MT (0 i 1) do śledzenia i koordynowania dwóch współrzędnych dotyku, które oddalają się od siebie.
# Finger 1 down at (500, 1000) using slot 0
event send EV_ABS:ABS_MT_SLOT:0
OK
event send EV_ABS:ABS_MT_TRACKING_ID:10
OK
event send EV_ABS:ABS_MT_POSITION_X:500
OK
event send EV_ABS:ABS_MT_POSITION_Y:1000
OK
event send EV_KEY:BTN_TOUCH:1
OK
event send EV_SYN:0:0
OK
# Finger 2 down at (600, 1000) using slot 1
event send EV_ABS:ABS_MT_SLOT:1
OK
event send EV_ABS:ABS_MT_TRACKING_ID:11
OK
event send EV_ABS:ABS_MT_POSITION_X:600
OK
event send EV_ABS:ABS_MT_POSITION_Y:1000
OK
event send EV_SYN:0:0
OK
# Fingers slide apart from each other
event send EV_ABS:ABS_MT_SLOT:0
OK
event send EV_ABS:ABS_MT_POSITION_X:300
OK
event send EV_SYN:0:0
OK
event send EV_ABS:ABS_MT_SLOT:1
OK
event send EV_ABS:ABS_MT_POSITION_X:800
OK
event send EV_SYN:0:0
OK
# Lift Finger 1 using slot 0
event send EV_ABS:ABS_MT_SLOT:0
OK
event send EV_ABS:ABS_MT_TRACKING_ID:-1
OK
event send EV_SYN:0:0
OK
# Lift Finger 2 using slot 1
event send EV_ABS:ABS_MT_SLOT:1
OK
event send EV_ABS:ABS_MT_TRACKING_ID:-1
OK
event send EV_KEY:BTN_TOUCH:0
OK
event send EV_SYN:0:0
OK
Symulowanie przełączenia połączenia słuchawek
Symuluj wkładanie i wyjmowanie wtyczki słuchawek, aby testować przełączniki routingu audio. Wartość 1 oznacza włożenie wtyczki, a 0 – wyjęcie słuchawek.
# Simulate headphones plugged in
event send EV_SW:SW_HEADPHONE_INSERT:1 EV_SYN:0:0
OK
# Simulate headphones unplugged
event send EV_SW:SW_HEADPHONE_INSERT:0 EV_SYN:0:0
OK
Odkrywanie kodów zdarzeń konsoli na prawdziwym urządzeniu
Aby poznać dokładną sekwencję składni zdarzenia dla dowolnego działania niestandardowego lub gestu przycisku, połącz się za pomocą powłoki adb i uruchom narzędzie diagnostyczne getevent. Podczas interakcji z interfejsem graficznym emulatora w konsoli wyświetlane są dokładne kody, typy i pozycje zdarzeń.
# Run getevent to monitor input events dynamically
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
- Wiadomość tekstowa zdarzenia: 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
wyświetlacz zasilania: wyświetla stan baterii i ładowarki.
power ac {on| off}: włącza lub wyłącza ładowanie z gniazdka.
power status {unknown| charging| discharging| not-charging| full}: zmienia stan baterii zgodnie z określonym stanem.
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 w procentach od 0 do 100.
Stan połączenia sieciowego (tylko Ethernet i sieć komórkowa)
stan sieci: sprawdza stan sieci oraz aktualne opóźnienie i szybkość.
network delay latencyZmienia 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.
Opóźnienie sieci może mieć jeden z tych formatów (liczby są podane w milisekundach):
Format opóźnienia sieci:
gprs: GPRS, który korzysta z zakresu opóźnień od 150 ms do 550 ms.
edge: EDGE/EGPRS, która ma zakres opóźnienia od 80 ms do 400 ms.
umts: UMTS/3G, która wykorzystuje zakres opóźnień od 35 ms do 200 ms.
none: brak opóźnienia.
num: emuluje określone opóźnienie w milisekundach.
min:max: emuluje określony zakres czasu oczekiwania.
Aby ustawić opóźnienie podczas uruchamiania emulatora, użyj opcji emulatora
-netdelayz obsługiwaną wartością opóźnienia. Przykłady:emulator -netdelay gprs emulator -netdelay 40,100Aby wprowadzić zmiany w opóźnieniu sieci podczas działania emulatora, połącz się z konsolą i użyj polecenia
network delay:network delay gprs network delay 40 100network speed speedEmulator umożliwia symulowanie różnych szybkości przesyłania danych w sieci. Możesz ustawić szybkość lub zakres przesyłania danych podczas uruchamiania emulatora albo użyć konsoli, aby zmienić szybkość, gdy aplikacja jest uruchomiona w emulatorze.Szybkość sieci może być podana w jeden z tych sposobów (liczby są podane w kilobitach na sekundę):
Format szybkości sieci:
gsm: GSM/CSD, która wykorzystuje prędkość 14,4 kb/s w górę i 14,4 kb/s w dół.
hscsd: HSCSD, która wykorzystuje prędkość 14,4 kb/s przy wysyłaniu i 43,2 kb/s przy pobieraniu.
gprs: GPRS, który wykorzystuje prędkość 40,0 kb/s w przypadku wysyłania i 80,0 kb/s w przypadku pobierania.
edge: EDGE/EGPRS, która wykorzystuje prędkość 118,4 kb/s w przypadku wysyłania i 236,8 kb/s w przypadku pobierania.
umts: UMTS/3G, która wykorzystuje prędkość 128,0 kb/s przy wysyłaniu i 1920 kb/s przy pobieraniu.
hsdpa: HSDPA, która wykorzystuje prędkość 348,0 kb/s w przypadku wysyłania i 14 400,0 kb/s w przypadku pobierania.
lte: LTE, która wykorzystuje prędkość 58 000 kb/s w górę i 173 000 kb/s w dół.
evdo: EVDO, która wykorzystuje prędkość 75 000 bitów na sekundę w przypadku wysyłania i 280 000 bitów na sekundę w przypadku pobierania.
Pełna: nieograniczona szybkość, ale zależy od szybkości połączenia komputera.
num: ustawia dokładną szybkość w kilobitach na sekundę, która jest używana zarówno do przesyłania, jak i pobierania.
up:down: ustawia dokładne szybkości przesyłania i pobierania w kilobitach na sekundę oddzielnie.
Aby ustawić szybkość sieci podczas uruchamiania emulatora, użyj opcji
-netspeedemulatora. Przykłady:emulator -netspeed gsm @Pixel_API_26 emulator -netspeed 14.4,80 @Pixel_API_26Aby zmienić szybkość sieci podczas działania emulatora, połącz się z konsolą i użyj polecenia
network speed:network speed 14.4 80network capture {start| stop} fileWysyła pakiety do pliku. Poniżej znajdziesz opis parametrów i ich wartości:Uwaga: od wersji 36.5 emulatora Androida ruch związany z połączeniem Wi-Fi jest domyślnie obsługiwany przez narzędzie netsim. Polecenie konsoli przechwytywania sieci przechwytuje tylko starszy ruch w sieci komórkowej lub WAN kierowany przez stos QEMU slirp. Aby przechwytywać pakiety Wi-Fi, Bluetooth lub zaawansowanej sieci w nowoczesnych wersjach emulatora, zapoznaj się z sekcją Przechwytywanie ruchu w sieci w przewodniku Zaawansowane sieci emulatora.
start file: rozpoczyna przechwytywanie pakietów sieciowych. Ze względów bezpieczeństwa plik musi mieć prostą nazwę (bez separatorów ścieżek, takich jak
/, i bez..). Plik z przechwyconymi pakietami zostanie zapisany w katalogu treści AVD w folderzeconsole_out/(np.~/.android/avd/avd_name.avd/console_out/file).stop file: zatrzymuje wysyłanie pakietów do określonego pliku.
Emulacja połączeń telefonicznych
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 oraz nawiązywać i zrywać 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 połączenia. Emulator nie obsługuje dźwięku połączeń.
gsm {call| accept| cancel| busy} phonenumberParametry gsm są następujące:- call: symuluje połączenie przychodzące z numeru telefonu.
- accept: odbiera połączenie przychodzące z numeru telefonu i zmienia stan połączenia na aktywny. Stan połączenia możesz zmienić na aktywny tylko wtedy, gdy jego bieżący stan to oczekiwanie lub wstrzymanie.
- cancel: kończy przychodzące lub wychodzące połączenie telefoniczne z numeru telefonu lub na numer telefonu.
- busy: zamyka połączenie wychodzące na numer telefonu i zmienia stan połączenia na zajęty. Stan połączenia możesz zmienić na zajęty tylko wtedy, gdy jego bieżący stan to oczekiwanie.
gsm {data| voice} statePolecenie stanu danych zmienia stan połączenia do transmisji danych GPRS, a polecenie stanu głosu zmienia stan połączenia głosowego GPRS w ten sposób:- unregistered: brak dostępnej sieci.
- home: w sieci lokalnej, bez roamingu.
- roaming: w sieci roamingowej.
- wyszukiwanie: wyszukiwanie sieci;
- odmowa: tylko połączenia alarmowe.
- off: to samo co niezarejestrowany.
- on: tak samo jak w przypadku domu.
gsm hold: zmienia stan połączenia na wstrzymane. Stan połączenia możesz zmienić na wstrzymany tylko wtedy, gdy jego bieżący stan to aktywny lub oczekujący.
gsm list: wyświetla 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 są takie same jak w przypadku poleceń głosowych i poleceń dotyczących danych.
gsm signal {rssi| ber}Zmienia zgłaszaną siłę sygnału (rssi) i wskaźnik błędów bitowych (ber) w ciągu następnych 15 sekund aktualizacji. Poniżej znajdziesz opis parametrów i ich wartości:- rssi: zakres to od 0 do 31, a 99 oznacza wartość nieznaną.
- ber: zakres to od 0 do 7 i 99 w przypadku nieznanego.
gsm signal-profile num: ustawia profil siły sygnału. num to liczba z zakresu od 0 do 4.
cdma ssource sourceUstawia bieżące źródło subskrypcji CDMA, gdzie źródło to lista dozwolonych oparta na sieci, która zawiera subskrybentów operatora CDMA i ich wartości w następujący sposób:- nv: odczytuje subskrypcję z pamięci RAM typu non-volatile.
- ruim: odczytuje subskrypcję z wymiennego modułu tożsamości użytkownika (RUIM).
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
Te polecenia dotyczą czujników dostępnych w AVD. Oprócz używania polecenia czujnika możesz wyświetlać i dostosowywać ustawienia w emulatorze na ekranie Wirtualne czujniki na kartach Akcelerometr i Dodatkowe czujniki.
Stan czujnika: zawiera listę wszystkich czujników i ich stanów.
sensor get sensor-name: pobiera ustawienia czujnika o nazwie sensor-name. Ten przykład pobiera wartość czujnika przyspieszenia:
sensor get acceleration acceleration = 2.23517e-07:9.77631:0.812348Wartości przyspieszenia rozdzielone dwukropkami(:) odnoszą się do współrzędnych x, y i z wirtualnych czujników.
sensor set sensor-name value-x:value-y:value-z: ustawia wartości dla elementu sensor-name. W tym przykładzie czujnik przyspieszenia jest ustawiony na wartości x, y i z rozdzielone dwukropkami.
sensor set acceleration 2.23517e-07:9.77631:0.812348
Emulacja SMS-ów
sms send sender-phone-number textmessageGeneruje emulowany przychodzący SMS. Poniżej znajdziesz listę parametrów i ich wartości:- sender-phone-number: zawiera dowolny ciąg znaków numerycznych.
- textmessage: SMS.
Ten przykładowy kod wysyła wiadomość „hi there” na numer telefonu 4085555555:
sms send 4085555555 hi there
Konsola przekazuje SMS-a do platformy Androida, 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 znaków numerycznych wyświetlają się w taki sposób, w jaki zostały wysłane.
Symulacja odcisku palca
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.
Nagrywanie ekranu
Polecenie nagrywania ekranu umożliwia przechwytywanie wysokiej jakości plików wideo z fizycznego wyświetlacza emulatora bezpośrednio z systemu hosta. Jest to bardzo przydatne w przypadku potoków trybu ciągłej integracji i automatycznego raportowania błędów.
screenrecord {start| stop} fileRozpoczyna lub zatrzymuje proces nagrywania ekranu.- start file: rozpoczyna nagrywanie filmu. Plik wyjściowy musi mieć obowiązkowe rozszerzenie
.webm. Przechwycony film jest zapisywany bezpośrednio w katalogu wyjściowym konsoli AVD:~/.android/avd/avd_name.avd/console_out/file. - stop file: zatrzymuje aktywny proces nagrywania ekranu.
- start file: rozpoczyna nagrywanie filmu. Plik wyjściowy musi mieć obowiązkowe rozszerzenie
Automatyzacja i makra
Podsystem automatyzacji umożliwia programistom rejestrowanie przejść stanu makra na działającym urządzeniu wirtualnym i odtwarzanie ich w celu wykonywania zautomatyzowanych testów.
automation {record| stop-record| play| stop-play}Zarządza automatycznymi nagraniami makr.- record: rozpoczyna rejestrowanie zmian stanu urządzenia i danych wejściowych.
- stop-record: zatrzymuje bieżącą sesję nagrywania makra.
- play: rozpoczyna odtwarzanie zarejestrowanej sekwencji makra.
- stop-play: zatrzymuje aktywną sekwencję odtwarzania makra.
Fizyka (6DoF)
Polecenia fizyki służą do rejestrowania rzeczywistych pozycji przestrzennych w przypadku modeli ruchu fizycznego o 6 stopniach swobody (6DoF), które są używane do symulowania zaawansowanego śledzenia ruchu.
physics {record-gt| stop}Zarządza nagraniami modelu pozycji fizycznej.- record-gt: rozpoczyna nagrywanie danych o ruchu 6DoF.
- stop: zatrzymuje bieżący proces nagrywania danych referencyjnych.
Zaawansowane sterowanie urządzeniami
Ta sekcja zawiera wysoce wyspecjalizowane punkty końcowe poleceń konsoli do zaawansowanych konfiguracji emulacji, w tym serwery proxy sieci, konfiguracje z wieloma wyświetlaczami, zastępowanie renderowania i bezpośrednie debugowanie hipernadzorcy.
multidisplay {add| del}Dodaje lub usuwa dodatkowe wirtualne monitory do testowania konfiguracji z wieloma ekranami. Uwaga: dodatkowe monitory nie są obsługiwane w przypadku urządzeń składanych, takich jak Pixel Fold, ani emulatorów z możliwością zmiany rozmiaru.proxy {set| clear}Konfiguruje przekazywanie sieciowego serwera proxy programowo z konsoli.- set host port: Konfiguruje ustawienia serwera proxy.
- clear: przywraca domyślne ustawienia serwera proxy. Uwaga: operacje ustawiania serwera proxy nie działają w środowiskach wykonawczych bez interfejsu.
virtualscene-image {wall| table} image_pathDostosowuje ściany w tle lub poziome stoły wyświetlane w przekazie z kamery sceny wirtualnej za pomocą niestandardowego pliku obrazu użytkownika.resize-display scaleDynamicznie dostosowuje rozdzielczość ekranu w ramach wstępnie ustawionych skal. Uwaga: dostosowania rozdzielczości nie są obsługiwane w konfiguracjach bez monitora.nodraw {on| off}Wyłącza renderowanie fizycznego interfejsu GUI na ekranie hosta, aby zmniejszyć obciążenie pamięci systemowej i procesora graficznego podczas automatyzacji bez interfejsu w tle przy dużej liczbie uruchomień.grpc portKonfiguruje zaawansowane programowe sterowanie urządzeniami za pomocą niestandardowych punktów końcowych portu gRPC.qemu monitorZapewnia bezpośredni interaktywny dostęp do terminala konsoli bazowego hiperwizora. To polecenie można wpisać tylko w aktywnych sesjach konsoli Telnet.icebox track pidUmożliwia automatyczne tworzenie migawek systemu, gdy w określonym procesie aplikacji wystąpi nieobsłużony wyjątek lub awaria.phonenumber numberUstawia wirtualny lokalny numer telefonu urządzenia docelowego.
Interfejs programowy gRPC
Nowoczesne wersje emulatora obsługują zaawansowany interfejs programowy gRPC oraz starszą konsolę Telnet. Konsola Telnet świetnie sprawdza się w przypadku szybkich sesji interaktywnych lub prostego skryptowania, ale interfejs gRPC został zaprojektowany z myślą o wysokiej wydajności, bezpieczeństwie i niezawodnej automatycznej kontroli w środowiskach ciągłej integracji (CI) i bez interfejsu graficznego. Dzięki oferowaniu bezpośrednich punktów końcowych usługi gRPC eliminuje konieczność analizowania strumieni tekstowych, zarządzania uzgadnianiem sesji terminala czy udostępniania niezaszyfrowanych portów hosta lokalnego.
Aby ułatwić wybór między starszą konsolą Telnet a nowoczesnym interfejsem programowym gRPC, zapoznaj się z tym porównaniem wydajności, bezpieczeństwa i funkcji:
| Funkcja | Konsola Telnet | Interfejs gRPC |
|---|---|---|
| Najlepsze zastosowania | Ręczne debugowanie, sesje interaktywne. | Bezobsługowe CI/CD, rozbudowane platformy testów automatycznych. |
| Szybkość | Wolniejsze; narzut tekstowy, opóźnienie połączenia. | Zoptymalizowany, multipleksowany HTTP/2, szybki protokół. |
| Bezpieczeństwo | Niezaszyfrowane; porty lokalne (5554–5585). | Może być zabezpieczony protokołem TLS i działać w sieciach. |
| Transmisje | Nieobsługiwane; tylko żądanie-odpowiedź. | Strumienie do logcat, przechwytywanie dźwięku gościa. |
| Media | Zapisuje pliki wyjściowe na dysku hosta lub gościa. | Bezpośrednie bufory binarne przesyłane przewodowo. |
| System operacyjny gościa | Ograniczone do stałych poleceń emulatora. | Uruchamia natywne polecenia powłoki bash gościa. |
Uruchamianie i wywoływanie gRPC
Aby używać punktów końcowych gRPC, uruchom emulator Androida z wiersza poleceń i dodaj flagę -grpc, określając docelowy port pętli zwrotnej.
# Start the emulator with the gRPC service enabled on port 8556
emulator -grpc localhost:8556 @Pixel_Fold
Gdy emulator będzie działać z włączoną usługą gRPC, możesz wykonywać programowe wywołania RPC. Do testowania wiersza poleceń użyj narzędzia grpcurl, aby komunikować się z usługami emulatora. Wszystkie żądania są formatowane w JSON i wysyłane w postaci zwykłego tekstu.
# Query the status of the virtual device using grpcurl
grpcurl -plaintext -d '{}' localhost:8556 \
android.emulation.control.EmulatorController/getStatus
# Simulate an incoming phone call
grpcurl -plaintext -d '{"operation": "InitCall", "number": "1234567890"}' localhost:8556 \
android.emulation.control.EmulatorController/sendPhone
# Simulate typing text into the guest OS
grpcurl -plaintext -d '{"text": "Hello"}' localhost:8556 \
android.emulation.control.EmulatorController/sendKey
Mapowanie konsoli Telnet na usługę gRPC
W poniższej tabeli referencyjnej znajdziesz mapowanie starszych poleceń konsoli Telnet na odpowiadające im usługi i metody gRPC. Zawiera ona też informacje o tym, jak programowo zautomatyzować typowe interakcje z urządzeniem wirtualnym:
| Kategoria | Starsze polecenie Telnet | Usługa / metoda gRPC |
|---|---|---|
| Status | ping |
EmulatorController/getStatus |
| Status | avd name |
incubating.AvdService/getAvdInfo |
| Status | kill |
EmulatorController/setVmState |
| Status | restart |
EmulatorController/setVmState |
| Moc | power display |
EmulatorController/getBattery |
| Moc | power capacity |
EmulatorController/setBattery |
| Geo Loc | geo fix |
EmulatorController/setGps |
| Czujniki | sensor set |
incubating.SensorService/setSensor |
| Biometria | finger touch |
EmulatorController/sendFingerprint |
| Postawa | posture |
EmulatorController/setPosture |
| Postawa | physics/fold |
EmulatorController/setPhysicalModel |
| SMS | sms send |
EmulatorController/sendSms |
| Połączenie GSM | gsm call |
EmulatorController/sendPhone |
| Połączenie GSM | phonenumber |
EmulatorController/setPhoneNumber |
| Przekierowanie | redir add |
Waterfall/ForwardPort |
| Wejście | event send EV_KEY |
EmulatorController/sendKey |
| Wejście | event send EV_ABS |
EmulatorController/sendTouch |
| Media | screenrecord |
incubating.ScreenRecording |
| Renderowanie | nodraw |
EmulatorController/setDisplayMode |
| Zrzuty | avd snapshot list |
SnapshotService/ListSnapshots |
| Zrzuty | avd snapshot load/save |
SnapshotService/LoadSnapshot |
Polecenia programowe unikalne dla gRPC
Interfejs gRPC udostępnia kilka zaawansowanych funkcji, których nie można fizycznie wykonać za pomocą starszych połączeń konsoli Telnet. Obejmują one bezpośrednie przesyłanie strumieniowe logcat, dwukierunkowe przechwytywanie lub wstawianie dźwięku, modyfikacje interfejsu GUI hosta i bezpośredni dostęp do powłoki.
| Usługa / metoda gRPC | Parametr | Możliwości |
|---|---|---|
streamLogcat |
{"maxLines": 100} |
Przesyła dane wyjściowe logcat dziennika systemowego gościa |
streamAudio |
{} |
Przesyła dźwięk z głośnika przez przewód. |
injectAudio |
{"audio": "..."} |
Wstawia strumienie audio z mikrofonu |
UiController |
{"theme": "DARK"} |
Modyfikuje motywy okien hosta. |
Waterfall/Exec |
{"cmd": "ls"} |
Uruchamia natywne polecenia powłoki systemu operacyjnego gościa |
Symulacja i weryfikacja odcisku palca
Użyj polecenia finger, aby symulować i weryfikować uwierzytelnianie za pomocą odcisku palca w aplikacji. Wymagane są SDK Tools w wersji 24.3 lub nowszej oraz Android 6.0 (API na poziomie 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, otwórz konsolę 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 zareagować tak, jakby użytkownik dotknął czytnika linii papilarnych, a następnie zdjął z niego palec.