Für jedes ausgeführte virtuelle Gerät ist eine Konsole verfügbar, mit der Sie die emulierte Geräteumgebung abfragen und steuern können. Sie können beispielsweise die Konsolen verwenden, um Portweiterleitung, Netzwerkmerkmale und Telefonieereignisse zu verwalten, während Ihre App auf dem Emulator ausgeführt wird.
Für die folgenden Befehle muss bereits ein Emulator ausgeführt werden. Weitere Informationen zum Ausführen eines Emulators finden Sie unter Apps im Android-Emulator ausführen und Emulator über die Befehlszeile starten.
Konsolensitzung starten und beenden
Wenn Sie über ein Terminalfenster auf die Konsole zugreifen und Befehle eingeben möchten, stellen Sie mit Telnet eine Verbindung zum Konsolenport her und geben Sie Ihr Authentifizierungstoken an. Jedes Mal, wenn auf der Konsole OK angezeigt wird, ist sie bereit, Befehle entgegenzunehmen. Es gibt keinen typischen Prompt.
So stellen Sie eine Verbindung zur Konsole eines ausgeführten virtuellen Geräts her:
Öffnen Sie ein Terminalfenster und geben Sie den folgenden Befehl ein:
telnet localhost console-portIm Titel des Emulatorfensters wird die Konsolenportnummer angezeigt, wenn der Emulator in einem separaten Fenster ausgeführt wird, nicht jedoch, wenn er in einem Toolfenster ausgeführt wird. Der Fenstertitel für einen Emulator, der den Konsolenport 5554 verwendet, könnte beispielsweise „Pixel8_API_34:5554“ lauten. Außerdem wird mit dem Befehl
adb deviceseine Liste der ausgeführten virtuellen Geräte und ihrer Konsolenportnummern ausgegeben. Weitere Informationen finden Sie unter Geräte abfragen.Hinweis:Der Emulator überwacht Verbindungen an den Ports 5554 bis 5585 und akzeptiert nur Verbindungen von localhost.
Wenn in der Konsole OK angezeigt wird, geben Sie den Befehl
auth auth_tokenein.Bevor Sie Konsolenbefehle eingeben können, muss die Emulator-Konsole authentifiziert werden.
auth_tokenmuss mit dem Inhalt der Datei.emulator_console_auth_tokenin Ihrem Basisverzeichnis übereinstimmen.Wenn die Datei nicht vorhanden ist, wird sie mit dem Befehl
telnet localhost console-porterstellt und enthält ein zufällig generiertes Authentifizierungstoken. Wenn Sie die Authentifizierung deaktivieren möchten, löschen Sie das Token aus der Datei.emulator_console_auth_tokenoder erstellen Sie eine leere Datei, falls sie nicht vorhanden ist.Nachdem Sie eine Verbindung zur Konsole hergestellt haben, können Sie Konsolenbefehle eingeben.
Geben Sie
help,help commandoderhelp-verboseein, um eine Liste der Konsolenbefehle aufzurufen und mehr über bestimmte Befehle zu erfahren.Geben Sie zum Beenden der Konsolensitzung
quitoderexitein.
Beispielsitzung:
$ 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.
„Fire-and-forget“-Befehle
Wenn die Sitzung nicht geöffnet sein muss, verwenden Sie die Tastenkombination adb emu. Dadurch wird der Befehl ausgeführt und die Steuerung wird sofort an die aufrufende Shell zurückgegeben:
adb emu command commandParameter
Bei der Aufrufung mit adb emu wird eine Verbindung zum verfügbaren Emulator hergestellt. Wenn Sie mehrere Emulatoren gleichzeitig ausführen, müssen Sie die Seriennummer des jeweiligen Emulators angeben:
adb -s emulator-serial emu command commandParameter
Emulator-Befehlsreferenz
In den folgenden Listen werden die Emulator-Konsolenbefehle mit ihren Parametern und Werten beschrieben:
Allgemeine Befehle
avd {stop| start| status| name}Fragt das virtuelle Gerät ab, steuert es und verwaltet es:- stop: Beendet die Ausführung des Geräts.
- start: Startet die Ausführung des Geräts.
- status: Fragt den Status des virtuellen Geräts ab. Er kann „running“ (wird ausgeführt) oder „stopped“ (angehalten) sein.
- name: Fragt den Namen des virtuellen Geräts ab.
avd snapshot {list| save name| load name| delete name}: Speichert und stellt den Gerätestatus in Snapshots wieder her, wie folgt:- list: Listet alle gespeicherten Snapshots auf.
- save name: Speichert den Snapshot unter dem Namen.
- load name: Lädt den benannten Snapshot.
- delete name: Löscht den benannten Snapshot.
Im folgenden Beispiel wird ein Snapshot mit dem Namen
firstactivitysnapshotgespeichert:avd snapshot save firstactivitysnapshotfold: Faltet das Gerät, um die kleinere Bildschirmkonfiguration anzuzeigen, wenn das Gerät faltbar und derzeit aufgeklappt ist.
unfold: Das Gerät wird aufgeklappt, um die Konfiguration mit dem größeren Display anzuzeigen, wenn das Gerät faltbar und derzeit zusammengeklappt ist.
kill: Beendet das virtuelle Gerät.
ping: Prüft, ob das virtuelle Gerät ausgeführt wird.
rotate: Dreht das AVD gegen den Uhrzeigersinn in 45-Grad-Schritten.
Emulator zum Absturz bringen
crash: Der Emulator stürzt während der Ausführung der App ab.
crash-on-exit: Der Emulator stürzt ab, wenn die App beendet wird.
Tags debuggen
debug tags ...: Aktiviert oder deaktiviert Debugging-Meldungen aus bestimmten Teilen des Emulators. Der Parameter „tags“ muss ein Wert aus der Liste der Debug-Tags sein, die angezeigt wird, wenn Sie
emulator -help-debug-tagsausführen. Weitere Informationen zur Option-help-debug-tagsfinden Sie in der Tabelle mit häufig verwendeten Optionen. Im folgenden Beispiel wird das Funktag aktiviert:debug radio
Portumleitung
redir list: Listet die aktuelle Portweiterleitung auf.
redir add protocol:host-port:guest-portFügt eine neue Portweiterleitung hinzu:- protocol: Muss entweder „tcp“ oder „udp“ sein.
- host-port: Die Portnummer, die auf dem Host geöffnet werden soll.
- guest-port: Die Portnummer, an die Daten im Emulator weitergeleitet werden sollen.
redir del protocol:host-portLöscht eine Portweiterleitung.- protocol: Muss entweder „tcp“ oder „udp“ sein.
- host-port: Die Portnummer, die auf dem Host geöffnet werden soll.
Geografischer Standort
Legt den geografischen Standort fest, der an die Apps gemeldet wird, die in einem Emulator ausgeführt werden, indem ein GPS-Fix an den Emulator gesendet wird.
Sie können einen der folgenden geografischen Befehle ausgeben, sobald ein virtuelles Gerät ausgeführt wird. Der Emulator legt den von Ihnen eingegebenen Standort fest, indem er einen Mock-Standortanbieter erstellt. Dieser Anbieter reagiert auf von Apps festgelegte Standort-Listener und stellt dem LocationManager den Standort zur Verfügung. Jede App kann den Standortmanager abfragen, um den aktuellen GPS-Fix für das emulierte Gerät abzurufen, indem sie LocationManager.getLastKnownLocation("gps") aufruft.
geo fix longitude latitude [altitude] [satellites] [velocity]: Sendet einen einfachen GPS-Fix an den Emulator. Geben Sie Längen- und Breitengrad in Dezimalgrad an. Geben Sie mit einer Zahl von 1 bis 12 die Anzahl der Satelliten an, die zur Bestimmung der Position verwendet werden sollen, und geben Sie die Höhe in Metern und die Geschwindigkeit in Knoten an.
geo nmea sentence: Sendet einen NMEA 0183-Satz an das emulierte Gerät, als wäre er von einem emulierten GPS-Modem gesendet worden. Beginne den Satz mit „$GP“. Derzeit werden nur die Sätze „$GPGGA“ und „$GPRCM“ unterstützt. Das folgende Beispiel ist ein GPGGA-Satz (Global Positioning System Fix Data), der die Zeit-, Positions- und Fixdaten für einen GPS-Empfänger abruft:
geo nmea $GPGGA,hhmmss.ss,llll.ll,a,yyyyy.yy,a,x,xx,x.x,x.x,M,x.x,M,x.x,xxxx
Gefälschte Hardware-Ereignisse
Mit dem Hardware-Ereignissubsystem der Emulatorkonsole können Sie praktisch jede physische Interaktion mit dem Gerät simulieren. Dazu gehören physische Tasten, Bildschirmberührungen/Gesten, Drehregler, Joystickeingaben und Hardwareschalter.
Ereignistypen: Hier werden alle gefälschten Ereignistypen aufgeführt. Bei Veranstaltungen mit Codes wird die Anzahl der Codes rechts in Klammern angegeben. Beispielausgabe:
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 ...]: Sendet einen oder mehrere gefälschte Ereignistypen.
event codes type: Hier werden die Ereigniscodes für den angegebenen Typ von gefälschten Ereignissen aufgeführt.
event send type[:code]:[value] [...]: Sendet ein oder mehrere gefälschte Ereignisse mit optionalen Codes und Codewerten.
EV_KEY – Schlüsselcodereferenzen
Mit dem Ereignistyp EV_KEY werden das Drücken und Loslassen von Schaltflächen simuliert. In den folgenden Tabellen wird die umfangreiche Liste der unterstützten Tastencodes in logische Kategorien unterteilt. Beim Senden eines Werts von 1 für einen Tastencode wird ein Drücken simuliert, bei einem Wert von 0 ein Loslassen. Ein Wert von 2 steht für die Wiederholung einer Taste.
Untergeordnete Tabelle A: Android-Systemtasten
| Code | Beschreibung |
|---|---|
KEY_HOME |
Auslöser über die Startbildschirmtaste |
KEY_BACK |
Trigger für den Button „Zurück“ |
KEY_MENU |
Menü-Button (Dreipunkt-Menü) |
KEY_POWER |
Ein/Aus-Taste (drücken/lange drücken) |
KEY_VOLUMEUP |
Auslösen über die Lautertaste |
KEY_VOLUMEDOWN |
Auslösen über die Leiser-Taste |
KEY_CAMERA |
Physischer Auslöser für die Kamera |
KEY_FOCUS |
Autofokus-Auslöser der Kamera |
KEY_SEARCH |
Trigger für die Schaltfläche „Suchen“ |
KEY_SLEEP |
Schlaf-Befehl auslösen |
KEY_WAKEUP |
Trigger für Aktivierungsbefehl |
KEY_NOTIFICATION |
Benachrichtigungsleiste öffnen |
KEY_MUTE |
Systemaudioausgabe stummschalten |
KEY_MICMUTE |
Mikrofoneingabe stummschalten |
KEY_BRIGHTNESSDOWN |
Helligkeit des Displays verringern |
KEY_BRIGHTNESSUP |
Helligkeit des Displays erhöhen |
KEY_PHONE |
Standard-App fürs Telefonieren öffnen |
KEY_SEND |
Anruf senden oder starten |
KEY_HEADSETHOOK |
Headset-Aufhänger (Annehmen/Auflegen) |
KEY_SCREEN |
Befehl zum Aktivieren des Bildschirmschoners |
KEY_CONFIG |
Systemmenü für die Konfiguration |
KEY_SWITCHVIDEOMODE |
Systemvideomodus wechseln |
KEY_KBDILLUMTOGGLE |
Tastaturbeleuchtung ein- oder ausschalten |
Untergeordnete Tabelle B: Medien- und Wiedergabesteuerung
| Code | Beschreibung |
|---|---|
KEY_PLAYPAUSE |
Zwischen Wiedergabe und Pause wechseln |
KEY_PLAY |
Medienwiedergabe starten |
KEY_PAUSECD |
CD-Wiedergabe pausieren |
KEY_STOPCD |
CD-Wiedergabe beenden |
KEY_NEXTSONG |
Zum nächsten Titel springen |
KEY_PREVIOUSSONG |
Zum vorherigen Titel springen |
KEY_REWIND |
Aktiven Track zurückspulen |
KEY_FASTFORWARD |
Aktiven Track vorspulen |
KEY_RECORD |
Triggerbefehl aufzeichnen |
KEY_SHUFFLE |
Zufallsmix aktivieren/deaktivieren |
KEY_REPEAT |
Wiederholung aktivieren/deaktivieren |
KEY_MEDIA |
Trigger für Medientaste |
Untertabelle C: Navigation und allgemeine Tastaturen
| Code | Beschreibung |
|---|---|
KEY_UP |
Richtung „Steuerkreuz oben“ |
KEY_DOWN |
Steuerkreuztaste „Nach unten“ |
KEY_LEFT |
Steuerkreuztaste „Nach links“ |
KEY_RIGHT |
Richtungstaste „Rechts“ auf dem Steuerkreuz |
KEY_PAGEUP |
Navigation mit „Bild auf“ |
KEY_PAGEDOWN |
Navigation mit Bildlauf nach unten |
KEY_INSERT |
Schlüssel-Trigger einfügen |
KEY_DELETE |
Tastentrigger löschen |
KEY_ENTER |
Schlüssel-Trigger eingeben |
KEY_ESC |
Trigger für die Escape-Taste |
KEY_TAB |
Tabulatortaste als Trigger |
KEY_SPACE |
Auslöser über die Leertaste |
KEY_BACKSPACE |
Rücktaste |
KEY_CLEAR |
Eingabepuffer leeren |
KEY_CANCEL |
Aktive Aktion abbrechen |
KEY_OK |
Auswahl bestätigen/OK |
KEY_SELECT |
Element-Trigger auswählen |
KEY_GOTO |
Zum angegebenen Ort gehen |
KEY_HELP |
Auf den Hilfekontext zugreifen |
Untergeordnete Tabelle D: Alphanumerische Zeichen und Ziffernblocksymbole
- Standardbuchstaben des Alphabets:
KEY_AbisKEY_Z(26 Codes). - Tasten des Ziffernblocks:
KEY_1bisKEY_0(10 Codes).
| Code | Zeichensymbol |
|---|---|
KEY_COMMA |
, |
KEY_DOT |
. |
KEY_SLASH |
/ |
KEY_SEMICOLON |
; |
KEY_APOSTROPHE |
' |
KEY_GRAVE |
\` |
KEY_MINUS |
- |
KEY_EQUAL |
= |
KEY_LEFTBRACE |
[ |
KEY_RIGHTBRACE |
] |
KEY_BACKSLASH |
\ |
KEY_KPASTERISK |
* (Ziffernblock) |
KEY_KPPLUS |
+ (Ziffernblock) |
KEY_KPMINUS |
- (Ziffernblock) |
KEY_KPDOT |
. (Ziffernblock) |
KEY_KPSLASH |
/ (Ziffernblock) |
KEY_KPENTER |
Eingabe (Ziffernblock) |
KEY_KPEQUAL |
= (Ziffernblock) |
KEY_KPCOMMA |
, (Ziffernblock) |
KEY_KPJPCOMMA |
, (japanisches Layout) |
KEY_KPLEFTPAREN |
( (Ziffernblock) |
KEY_KPRIGHTPAREN |
) (Ziffernblock) |
KEY_KPPLUSMINUS |
± (Ziffernblock) |
Untertabelle E: Modifikator- und Funktionstasten
- Standard-Funktionstasten:
KEY_F1bisKEY_F24(24 Codes).
| Code | Beschreibung |
|---|---|
KEY_LEFTSHIFT |
Tastenkombination mit der linken Umschalttaste |
KEY_RIGHTSHIFT |
Rechte Umschalttaste |
KEY_LEFTCTRL |
Tastenkombination mit der linken Strg-Taste |
KEY_RIGHTCTRL |
Rechte Strg-Taste als Tastaturmodifikator |
KEY_LEFTALT |
„Links-Alt“-Tastaturmodifikator |
KEY_RIGHTALT |
Rechte Alt-Taste als Modifikator |
KEY_LEFTMETA |
Linke Meta-/Befehlstaste |
KEY_RIGHTMETA |
Rechte Meta-/Befehlstaste |
KEY_CAPSLOCK |
Feststelltaste |
KEY_NUMLOCK |
Num-Taste |
KEY_SCROLLLOCK |
Rollen-Taste |
KEY_COMPOSE |
Compose Character Helper |
KEY_FN |
FN-Taste auf der physischen Tastatur |
KEY_FN_ESC |
Kombinationen mit Funktionstasten |
KEY_FN_1 |
Tastenkombination für Sonderfunktion 1 |
KEY_FN_2 |
Tastenkombination für Sonderfunktion 2 |
KEY_FN_D |
Tastenkombination für Sonderfunktion D |
KEY_FN_E |
Tastenkombination für Sonderfunktion E |
KEY_FN_F |
Tastenkombination für Sonderfunktionen F |
KEY_FN_S |
Tastenkombination für Sonderfunktionen S |
KEY_FN_B |
Tastenkombination für Sonderfunktion B |
Untergeordnete Tabelle F: Gamepads und Joysticks
| Code | Beschreibung |
|---|---|
BTN_A/BTN_B/BTN_C |
Tasten A/B/C auf der Oberseite des Controllers |
BTN_X/BTN_Y/BTN_Z |
Tasten auf der Oberseite des Controllers X/Y/Z |
BTN_START |
Gamepad-Button für das Startmenü |
BTN_SELECT |
Gamepad-Auswahltaste |
BTN_MODE |
Schalter für den Controllermodus |
BTN_TL/BTN_TR |
Linke / rechte Schultertasten |
BTN_TL2/BTN_TR2 |
Analoge Trigger links / rechts |
BTN_THUMBL/BTN_THUMBR |
Mit linkem / rechtem Stick klicken |
BTN_DPAD_UP |
Gamepad-Trigger „Steuerkreuz – Nach oben“ |
BTN_DPAD_DOWN |
Trigger „Steuerkreuztaste ‚Nach unten‘“ des Gamepads |
BTN_DPAD_LEFT |
Linker Trigger des Gamepad-Steuerkreuzes |
BTN_DPAD_RIGHT |
Gamepad-Trigger „Steuerkreuz rechts“ |
BTN_THUMB |
Primärer Daumentrigger des Joysticks |
BTN_TOP/BTN_TOP2 |
Obere Tasten des Joysticks |
BTN_PINKIE |
Auslöser für die kleine Finger-Taste des Joysticks |
BTN_BASE bis _BASE6 |
Joystick-Plattform-Basistasten |
BTN_DEAD |
Flag für inaktive Gamepad-Totzone |
BTN_TRIGGER |
Handtrigger für physischen Joystick |
BTN_JOYSTICK |
Generischer Joystick-Eingabecode |
Untergeordnete Tabelle G: Maus-, Touch- und Eingabestifteingaben
| Code | Beschreibung |
|---|---|
BTN_MOUSE |
Allgemeines Mauszeigerereignis |
BTN_LEFT |
Mit der linken Maustaste klicken |
BTN_RIGHT |
Rechte Maustaste drücken |
BTN_MIDDLE |
Mit mittlerer Maustaste klicken |
BTN_SIDE |
Auslöser für seitliche Navigationstaste |
BTN_EXTRA |
Auslöser für zusätzliche Maustaste |
BTN_FORWARD |
Klick auf die Schaltfläche „Weiter“ im Browser |
BTN_BACK |
Klicken auf die Browsernavigation „Zurück“ |
BTN_TASK |
Taste für den System-Task-Switcher |
BTN_TOUCH |
Physischer Kontakt mit dem Display erkannt |
BTN_STYLUS |
Nähe des aktiven Eingabestifts |
BTN_STYLUS2 |
Sekundärer Schalter am Stift |
BTN_TOOL_PEN |
Kennung des Eingabestift-Tools |
BTN_TOOL_RUBBER |
ID des Radierer-Tools für den Eingabestift |
BTN_TOOL_BRUSH |
ID des Painter-Pinseltools |
BTN_TOOL_PENCIL |
ID des Tools für den Druckbleistift |
BTN_TOOL_AIRBRUSH |
Airbrush-Tool-ID |
BTN_TOOL_FINGER |
Fingerkontakt mit dem Touchscreen |
BTN_TOOL_MOUSE |
Externe Maus-Tool-ID |
BTN_TOOL_LENS |
Optisches Vergrößerungsobjektiv |
BTN_TOOL_DOUBLETAP |
Flag für die Geschwindigkeit beim Doppeltippen per Geste |
BTN_TOOL_TRIPLETAP |
Flag für die Geschwindigkeit beim dreimaligen Tippen per Touchgeste |
Untertabelle H: App-Verknüpfungen
| Code | Zielaktion |
|---|---|
KEY_WWW |
Standard-Webbrowser wird gestartet |
KEY_MAIL |
Standard-E‑Mail-Client wird geöffnet |
KEY_BOOKMARKS |
Öffnet die Liste der Browserlesezeichen |
KEY_CALC |
Öffnet das Rechner-Dienstprogramm |
KEY_FILE |
Öffnet den lokalen Datei-Explorer |
KEY_EDIT |
Trigger für die Dokumentbearbeitung |
KEY_NEW |
Neuen Trigger erstellen |
KEY_OPEN |
Trigger zum Öffnen von Dokumenten |
KEY_SAVE |
Trigger für das Speichern von Dateien |
KEY_CLOSE |
Trigger für die Aufgabe zum Schließen von Dateien |
KEY_PRINT |
Trigger für Druckaufträge |
KEY_COPY |
Aktion zum Kopieren in den Zwischenablagespeicher |
KEY_PASTE |
Aktion zum Einfügen aus dem Zwischenablagepuffer |
KEY_CUT |
Ausschneiden in Zwischenablage |
KEY_UNDO |
Aktion zum Rückgängigmachen des Zwischenablagepuffers |
KEY_REDO |
Aktion „Wiederholen“ für Zwischenablagepuffer |
KEY_CANCEL |
Puffer für das Auslösen des Stornierungsvorgangs |
KEY_FIND |
Dokumentsuchfunktion |
KEY_REFRESH |
Tool zum Aktualisieren von Dokumenten |
KEY_EXIT |
Dienstprogramm zum Schließen von Dokumenten |
KEY_DOCUMENTS |
Systemdokumente-Portal wird eingeführt |
KEY_HOMEPAGE |
Startet den Browser auf der Startseite |
KEY_FAVORITES |
Öffnet das Browserfavoritenportal |
KEY_CHAT |
Startet den Instant Messenger |
KEY_EMAIL |
Trigger für alternative E‑Mail-Adresse |
KEY_FINANCE |
Open Stock/Finance Utility |
KEY_SPORT |
Tool für das Sport-Tracking öffnen |
KEY_SHOP |
Digitales Shopping-Portal öffnen |
KEY_PLAYER |
Primären Mediaplayer öffnen |
KEY_MP3 |
Primären MP3-Player öffnen |
KEY_TEXT |
Standard-Texteditor öffnen |
KEY_LIST |
Checklist-Tool öffnen |
KEY_MEMO |
Notizblock / Memo-Tool öffnen |
KEY_CALENDAR |
Öffnet das Kalender-/Terminübersichtsportal |
KEY_DIRECTORY |
Öffnet das Adressverzeichnis des Systems |
KEY_COMPUTER |
Öffnet den Specifications Explorer |
KEY_TV/KEY_TV2 |
Startet das Fernsehportal |
KEY_RADIO |
Startet das Radio-Tool |
KEY_CD/KEY_DVD |
Aktiviert das optische Laufwerk |
KEY_AUDIO/KEY_VIDEO |
Zugriff auf Medienspezifikationen |
KEY_TUNER |
Konfiguriert Empfänger/Tuner |
KEY_SAT/KEY_SAT2 |
Satellitenfeeds konfigurieren |
KEY_TAPE |
Kassettenrekorder abspielen |
KEY_VCR |
VCR-Player-Feed abspielen |
KEY_VCR2 |
VCR 2-Player-Feed abspielen |
KEY_AUX |
AUX-Media-Port-Eingänge |
KEY_SETUP |
Menü „Einrichtungskonfiguration“ |
KEY_PROG1 bis _PROG4 |
Benutzerdefinierte Programmschlüssel |
KEY_ZOOM |
Darstellungsbereich ein- und auszoomen |
KEY_MODE |
Darstellungsbereichsmodus auswählen |
KEY_KEYBOARD |
Bildschirmtastatur ein-/ausblenden |
KEY_LANGUAGE |
Sprache des Audiotracks wechseln |
KEY_TITLE |
Optionen für Medientitel öffnen |
KEY_SUBTITLE |
Untertitel ein-/ausblenden |
KEY_ANGLE |
Kamerawinkel ändern |
KEY_EPG |
Elektronische Programmübersicht öffnen |
KEY_PVR |
Persönlichen Videorecorder öffnen |
KEY_MHP |
Multimediale Startseite öffnen |
KEY_CHANNEL |
TV‑Kanäle über den Fernsehempfänger öffnen |
KEY_CHANNELUP |
Fernsehsender nach oben einstellen |
KEY_CHANNELDOWN |
TV-Kanal nach unten einstellen |
KEY_RED |
Roter interaktiver Button |
KEY_GREEN |
Grüne interaktive Schaltfläche |
KEY_YELLOW |
Gelber interaktiver Button |
KEY_BLUE |
Blaue interaktive Schaltfläche |
KEY_FIRST |
Option für das erste Element auswählen |
KEY_LAST |
Option „Letztes Element“ auswählen |
KEY_NEXT |
Option für den nächsten Titel auswählen |
KEY_PREVIOUS |
Vorherige Titeloption auswählen |
KEY_RESTART |
Schleife des Mediatracks neu starten |
KEY_SLOW |
Option für die Wiedergabe in Zeitlupe |
KEY_AB |
A-B-Wiederholungsschleife |
KEY_PLAYCD |
Befehl zum Abspielen von CD-Decks |
KEY_PAUSECD |
Befehl zum Pausieren des CD-Decks |
KEY_STOPCD |
Befehl zum Beenden des CD-Decks |
KEY_DIGITS |
Befehl zur Eingabe über das digitale Tastenfeld |
KEY_TEEN |
Option „Tastenfeld-Teenagerwerte“ |
KEY_TWEN |
Option „Twen-Werte für Tastenfeld“ |
KEY_DEL_EOL |
Bis zum Ende des Zeilenpuffers löschen |
KEY_DEL_EOS |
Bis zum Ende des Bildschirmbuffers löschen |
KEY_INS_LINE |
Neue Zeilenpuffer einfügen |
KEY_BRL_DOT1 bis _DOT8 |
Eingaben über Braillezeilen-Schaltflächen |
KEY_VOICECOMMAND |
Startet die Sprachassistenten-App |
KEY_SELECTIVE_SCREEN |
Löst das regionale Ausschneiden von Screenshots aus |
KEY_BATTERY |
Fragt Benachrichtigungen zum Akku ab |
KEY_STAR/KEY_SHARP |
Symbole auf der Telefontastatur |
KEY_PLUS |
Telefontastatur mit Pluszeichen |
KEY_INFO |
Overlay für Infofeld anzeigen |
KEY_TIME |
Aktuelle Uhrzeit anzeigen |
KEY_VENDOR |
Anfragen zu Anbieterspezifikationen |
KEY_ARCHIVE |
Öffnet das lokale Archivierungstool |
KEY_PROGRAM |
Konfiguriert Programmparameter |
KEY_POWER2 |
Löst die alternative Stromversorgung aus |
EV_ABS – Absolute Motion Events
Der Ereignistyp EV_ABS ist wichtig, um präzise Berührungen, Drag-and-drop-Gesten, Multi-Touch-Pinch-Aktionen und Joystick-Anpassungen zu simulieren. Die absoluten Koordinaten unten entsprechen direkt der zugrunde liegenden physischen Bildschirmauflösung.
| Code | Koordinatenbereich | Beschreibung |
|---|---|---|
ABS_MT_TRACKING_ID |
-1 oder ≥0 |
Tracking-ID; -1 beendet die Berührung |
ABS_MT_POSITION_X |
0 bis 1767 |
X-Koordinate (Pixel Fold) |
ABS_MT_POSITION_Y |
0 bis 2207 |
Y-Koordinate (Pixel Fold) |
ABS_MT_TOUCH_MAJOR |
Pixel | Breite der Hauptachse des Touchbereichs |
ABS_MT_TOUCH_MINOR |
Pixel | Breite der Nebenachse des Touchbereichs |
ABS_MT_WIDTH_MAJOR |
Pixel | Breite der Hauptachse des Werkzeugs |
ABS_MT_WIDTH_MINOR |
Pixel | Breite der Nebenachse des Tools |
ABS_MT_ORIENTATION |
0 bis 255 |
Winkel der Kontaktorientierung |
ABS_MT_PRESSURE |
0 bis 255 |
Größe der Kontaktkraft |
ABS_MT_DISTANCE |
mm | Abstand des Stifts zum Display beim Hovern |
ABS_MT_TOOL_TYPE |
0 bis 2 |
0=Finger, 1=Stift, 2=Bleistift |
ABS_MT_BLOB_ID |
Ganzzahl | Kontakt-Blob-ID |
ABS_MT_TOOL_X |
Pixel | X-Koordinate der Toolposition |
ABS_MT_TOOL_Y |
Pixel | Y-Koordinatenposition des Tools |
ABS_MT_SLOT |
0 bis N |
Aktiver Slot (Protokoll B) |
ABS_X/_Y/_Z |
analog | Joystick-Koordinatenachsen |
ABS_RX/_RY/_RZ |
analog | Rotationsachsen des Joysticks |
ABS_THROTTLE/_BRAKE |
analog | Pedale und Lenkung |
ABS_HAT0X/_HAT0Y |
-1/0/1 |
D-Pad-Hut und POV-Schalter |
ABS_PRESSURE |
0 bis 255 |
Kraftstufe für Stift / Zeiger |
ABS_DISTANCE |
mm | Schwebestrecke (Eingabestift) |
ABS_TILT_X/_TILT_Y |
Grad | Neigungswinkel des Eingabestifts |
ABS_VOLUME |
analog | Lautstärke des Controllers |
Die Touch-Interaktion unter Android basiert auf Multi-Touch-Protokollen (MT). Moderne Emulatoren implementieren sowohl Protokoll A (zustandslos, Senden von Kontaktpaketen, die durch Synchronisationsmarkierungen getrennt sind) als auch Protokoll B (zustandsbehaftet, Zuweisen von Kontakten zu dedizierten Tracking-Slots). Protokoll B ermöglicht die effiziente Erfassung mehrerer gleichzeitiger Berührungen für Gesten wie das Auf- und Zuziehen zum Zoomen.
EV_REL und EV_SW – Bewegung und Hardwareschalter
Mit der Ereigniskategorie EV_REL werden relative Änderungen des Mauszeigers oder der Koordinaten verwaltet. Sie wird hauptsächlich zum Emulieren externer Mausbewegungen oder Scrollräder verwendet. Mit der Ereigniskategorie EV_SW werden physische Geräteschalter verwaltet, z. B. ob ein Klapphandy oder Tablet zusammengeklappt ist oder ob externe Audiohardware angeschlossen ist.
| Code | Werte | Beschreibung |
|---|---|---|
REL_X |
Delta | Horizontale Cursorbewegung |
REL_Y |
Delta | Vertikale Cursorbewegung |
SW_LID |
0/1 |
Status des Laptop-Displays (0=Offen, 1=Geschlossen) |
SW_TABLET_MODE |
0/1 |
Status des Tabletmodus (0=Aus, 1=Aktiv) |
SW_HEADPHONE_INSERT |
0/1 |
Status des Kopfhöreranschlusses (0=Aus, 1=Ein) |
SW_MICROPHONE_INSERT |
0/1 |
Status des Mikrofonanschlusses (0=Aus, 1=Ein) |
Syntax für die Befehlsweiterleitung
Um diese Codes zu senden, formatieren Sie den Konsolenbefehl mit Typen, Codes und Werten, die durch Doppelpunkte getrennt sind. Sie können mehrere Koordinatenänderungen in einer einzigen Zeichenfolge in die Warteschlange stellen. Wichtig: Hängen Sie immer eine Markierung für die endgültige Synchronisierung (EV_SYN:0:0) an, um anzugeben, dass das Emulator-Framework diese Eingaben zusammenfassen und verarbeiten soll.
Beispiele für Ereignisskripting und Gesten
Da mit Telnet mehrteilige Parameter gesendet werden können, lassen sich realistische physische Gestenfolgen simulieren. Unten finden Sie Rohereignisskriptstrukturen zum Automatisieren von Gesten über die Hostkonsole.
Tippen auf dem Bildschirm simulieren
Um einen sauberen Bildschirmtipp an einer Zielkoordinate auszuführen, weisen Sie eine Tracking-ID zu, geben Sie die X- und Y-Koordinaten auf dem Bildschirm an, simulieren Sie die Berührung, synchronisieren Sie und lassen Sie dann los.
# 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
Vertikales Scrollen (Wischen) simulieren
Um eine Scroll-Wischgeste auszuführen, halten Sie den Kontakt an der Startkoordinate gedrückt, senden Sie Zwischenkoordinatenframes und lassen Sie den Kontakt am Ende los.
# 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
Geste zum Zoomen simulieren
Um einen Zoom mit zwei Fingern auszulösen, verwenden Sie aktive MT-Slots (0 und 1), um zwei gleichzeitige Berührungskoordinaten zu verfolgen und zu koordinieren, die sich voneinander entfernen.
# 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
Wechsel der Kopfhörerverbindung simulieren
Simulieren Sie das Ein- oder Ausstecken von Kopfhörern, um Audio-Routing-Schalter zu testen. Ein Wert von 1 steht für das Einsetzen des Anschlusses und 0 für das Entfernen des Kopfhörers.
# 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
Console-Ereigniscodes auf einem echten Gerät ermitteln
Wenn Sie die genaue Ereignissyntaxsequenz für eine benutzerdefinierte Aktion oder Schaltflächenbewegung ermitteln möchten, stellen Sie eine Verbindung über die ADB-Shell her und führen Sie das Diagnosetool getevent aus. Während Sie mit der Emulator-GUI interagieren, werden in der Konsole die genauen Ereigniscodes, ‑typen und ‑positionen ausgegeben.
# 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
- Ereignis-SMS: Sendet eine Zeichenfolge, die Tastendrücke simuliert. Die Nachricht muss ein UTF-8-String sein. Unicode-Beiträge werden gemäß der aktuellen Geräte-Tastatur rückwärts zugeordnet und nicht unterstützte Zeichen werden ohne Benachrichtigung verworfen.
Steuerelemente für den Energiezustand
Stromanzeige: Zeigt den Akku- und Ladestatus an.
power ac {on| off}: Legt den Ladestatus für Wechselstrom auf „on“ oder „off“ fest.
power status {unknown| charging| discharging| not-charging| full}: Ändert den Akkustatus wie angegeben.
power present {true| false}: Legt den Status des Akkus fest.
power health {unknown| good| overheat| dead| overvoltage| failure}: Legt den Akkuzustand fest.
power capacity percent: Legt den verbleibenden Akkukapazitätszustand als Prozentsatz zwischen 0 und 100 fest.
Status der Netzwerkverbindung (nur Ethernet und Mobilfunk)
network status: Prüft den Netzwerkstatus sowie die aktuelle Verzögerung und Geschwindigkeit.
network delay latencyÄndert die emulierte Netzwerklatenz.Mit dem Emulator können Sie verschiedene Netzwerklatenzstufen simulieren, um Ihre App in einer Umgebung zu testen, die den tatsächlichen Laufzeitbedingungen entspricht. Sie können beim Start des Emulators eine Latenzstufe oder einen Latenzbereich festlegen oder die Latenz über die Konsole ändern, während die App im Emulator ausgeführt wird.
Die Netzwerklatenz kann eines der folgenden Formate haben (Zahlen in Millisekunden):
Format für Netzwerklatenz:
gprs: GPRS mit einem Latenzbereich von mindestens 150 und maximal 550.
edge: EDGE/EGPRS, das einen Latenzbereich von mindestens 80 und höchstens 400 ms verwendet.
umts: UMTS/3G mit einem Latenzbereich von mindestens 35 und höchstens 200.
none: Keine Latenz.
num: Emuliert die angegebene Latenz in Millisekunden.
min:max: Emuliert den angegebenen Latenzbereich.
Wenn Sie die Latenz beim Start des Emulators festlegen möchten, verwenden Sie die Emulatoroption
-netdelaymit einem unterstützten Latenzwert. Beispiele:emulator -netdelay gprs emulator -netdelay 40,100Wenn Sie die Netzwerkverzögerung ändern möchten, während der Emulator ausgeführt wird, stellen Sie eine Verbindung zur Konsole her und verwenden Sie den Befehl
network delay:network delay gprs network delay 40 100network speed speedMit dem Emulator können Sie verschiedene Netzwerkübertragungsraten simulieren. Sie können beim Start des Emulators eine Übertragungsrate oder einen Bereich festlegen oder die Rate über die Konsole ändern, während die App im Emulator ausgeführt wird.Die Netzwerkgeschwindigkeit kann eines der folgenden Formate haben (Zahlen in Kilobit/s):
Format für Netzwerkgeschwindigkeit:
gsm: GSM/CSD mit einer Geschwindigkeit von 14, 4 kbit/s für Up- und Download.
hscsd: HSCSD mit einer Geschwindigkeit von 14,4 kbit/s im Upstream und 43,2 kbit/s im Downstream.
gprs: GPRS mit einer Geschwindigkeit von 40,0 Mbit/s im Upstream und 80,0 Mbit/s im Downstream.
edge: EDGE/EGPRS mit einer Geschwindigkeit von 118,4 Kbit/s im Upstream und 236,8 Kbit/s im Downstream.
umts: UMTS/3G mit einer Geschwindigkeit von 128, 0 Kbit/s im Upstream und 1.920 Kbit/s im Downstream.
hsdpa: HSDPA mit einer Geschwindigkeit von 348, 0 Mbit/s im Upstream und 14.400,0 Mbit/s im Downstream.
lte: LTE mit einer Geschwindigkeit von 58.000 kbit/s im Upload und 173.000 kbit/s im Download.
evdo: EVDO mit einer Geschwindigkeit von 75.000 Upstream und 280.000 Downstream.
Voll: Unbegrenzte Geschwindigkeit, hängt jedoch von der Verbindungsgeschwindigkeit Ihres Computers ab.
num: Legt eine genaue Rate in Kilobit/s für Upload und Download fest.
up:down: Legt genaue Raten in Kilobit/s für Upload und Download separat fest.
Verwenden Sie die Emulatoroption
-netspeed, um die Netzwerkgeschwindigkeit beim Start des Emulators festzulegen. Beispiele:emulator -netspeed gsm @Pixel_API_26 emulator -netspeed 14.4,80 @Pixel_API_26Wenn Sie die Netzwerkgeschwindigkeit ändern möchten, während der Emulator ausgeführt wird, stellen Sie eine Verbindung zur Konsole her und verwenden Sie den Befehl
network speed:network speed 14.4 80network capture {start| stop} filePakete in eine Datei senden. In der folgenden Liste werden die Parameter und Parameterwerte beschrieben:Hinweis:Ab Android Emulator 36.5 und höher wird der WLAN-Verbindungsverkehr standardmäßig von netsim verarbeitet. Mit dem Konsolenbefehl „network capture“ wird nur der alte Mobilfunk-/WAN-Traffic erfasst, der über den QEMU-Slirp-Stack weitergeleitet wird. Informationen zum Erfassen von WLAN-, Bluetooth- oder erweiterten Netzwerkpaketen in modernen Emulatorversionen finden Sie im Leitfaden zu erweiterten Emulatornetzwerken unter Netzwerkverkehr erfassen.
start file: Startet die Erfassung von Netzwerkpaketen. Aus Sicherheitsgründen muss die Datei ein einfacher Dateiname sein (keine Pfadtrennzeichen wie
/und kein..). Die Datei mit der Paketerfassung wird im Inhaltsverzeichnis Ihres AVD im Ordnerconsole_out/gespeichert (z. B.~/.android/avd/avd_name.avd/console_out/file).stop file: Das Senden von Paketen an die angegebene Datei wird beendet.
Telefonie-Emulation
Der Android-Emulator enthält eigene emulierte GSM- und CDMA-Modems, mit denen Sie Telefoniefunktionen im Emulator simulieren können. Mit GSM können Sie beispielsweise eingehende Anrufe simulieren und Datenverbindungen herstellen und beenden. Bei CDMA geben Sie eine Aboquelle und die bevorzugte Roaming-Liste an. Das Android-System behandelt simulierte Anrufe genau wie tatsächliche Anrufe. Der Emulator unterstützt kein Anrufaudio.
gsm {call| accept| cancel| busy} phonenumberDie GSM-Parameter sind:- call: Simuliert einen eingehenden Anruf von phonenumber.
- accept: Nimmt einen eingehenden Anruf von der Telefonnummer an und ändert den Anrufstatus in „Aktiv“. Sie können den Anrufstatus nur dann in „Aktiv“ ändern, wenn der aktuelle Status „Warten“ oder „Gehalten“ ist.
- cancel: Beendet einen eingehenden oder ausgehenden Anruf von oder an die Telefonnummer.
- busy: Beendet einen ausgehenden Anruf an „phonenumber“ und ändert den Anrufstatus in „busy“. Sie können den Anrufstatus nur dann in „Beschäftigt“ ändern, wenn der aktuelle Status „Warten“ ist.
gsm {data| voice} stateMit dem Befehl für den Datenstatus wird der Status der GPRS-Datenverbindung geändert, mit dem Befehl für den Sprachstatus der Status der GPRS-Sprachverbindung. Das funktioniert so:- Nicht registriert: Kein Netzwerk verfügbar.
- home: Im lokalen Netzwerk, kein Roaming.
- Roaming: Im Roaming-Netzwerk.
- Suche: Es wird nach Netzwerken gesucht.
- Verweigert: Nur Notrufe.
- off: Wie „unregistered“.
- An: Wie zu Hause.
gsm hold: Ändert den Status eines Anrufs in „Warten“. Sie können den Anrufstatus nur dann in „Warten“ ändern, wenn der aktuelle Status „Aktiv“ oder „Warten“ ist.
gsm list: Listet alle eingehenden und ausgehenden Anrufe und deren Status auf.
gsm status (GSM-Status): Gibt den aktuellen GSM-Sprach-/Datenstatus an. Die Werte sind die, die für die Sprach- und Datenbefehle beschrieben werden.
gsm signal {rssi| ber}Ändert die gemeldete Signalstärke (rssi) und Bitfehlerrate (ber) in den nächsten 15 Sekunden der Aktualisierung. In der folgenden Liste werden die Parameter und ihre Werte beschrieben:- rssi: Der Bereich liegt zwischen 0 und 31. 99 steht für „unbekannt“.
- ber: Der Bereich liegt zwischen 0 und 7 sowie 99 für „unbekannt“.
gsm signal-profile num: Legt das Signalstärkeprofil fest. num ist eine Zahl zwischen 0 und 4.
cdma ssource sourceLegt die aktuelle CDMA-Aboquelle fest. Die Quelle ist eine netzwerkbasierte Zulassungsliste, die die Abonnenten des CDMA-Mobilfunkanbieters und ihre Werte enthält:- nv: Liest das Abo aus dem nichtflüchtigen RAM.
- ruim: Liest das Abo aus dem Removable User Identity Module (RUIM).
cdma prl_version version: Gibt die aktuelle Version der Preferred Roaming List (PRL) aus. Die Versionsnummer bezieht sich auf die PRL-Datenbank, die Informationen enthält, die während der Systemauswahl und des Erfassungsprozesses verwendet werden.
Sensoren im Emulator verwalten
Diese Befehle beziehen sich darauf, welche Sensoren im AVD verfügbar sind. Neben der Verwendung des Sensorbefehls können Sie die Einstellungen im Emulator auch auf dem Bildschirm „Virtuelle Sensoren“ auf den Tabs „Beschleunigungsmesser“ und „Zusätzliche Sensoren“ aufrufen und anpassen.
Sensorstatus: Hier werden alle Sensoren und ihr Status aufgeführt.
sensor get sensor-name: Ruft die Einstellungen für „sensor-name“ ab. Im folgenden Beispiel wird der Wert für den Beschleunigungssensor abgerufen:
sensor get acceleration acceleration = 2.23517e-07:9.77631:0.812348Die durch Doppelpunkte(:) getrennten Beschleunigungswerte beziehen sich auf die x-, y- und z-Koordinaten für die virtuellen Sensoren.
sensor set sensor-name value-x:value-y:value-z: Legt die Werte für sensor-name fest. Im folgenden Beispiel wird der Beschleunigungssensor auf die durch Doppelpunkte getrennten x-, y- und z-Werte festgelegt.
sensor set acceleration 2.23517e-07:9.77631:0.812348
SMS-Emulation
sms send sender-phone-number textmessageGeneriert eine emulierte eingehende SMS. In der folgenden Liste werden die Parameter und ihre Werte beschrieben:- sender-phone-number: Enthält einen beliebigen numerischen String.
- textmessage: Die SMS-Nachricht.
Im folgenden Beispiel wird die Nachricht „Hallo“ an die Telefonnummer 4085555555 gesendet:
sms send 4085555555 hi there
Die Konsole leitet die SMS an das Android-Framework weiter, das sie an eine App auf dem Emulator übergibt, die SMS verarbeitet, z. B. die Messages App. Wenn Sie 10 Zahlen übergeben, wird sie von der App als Telefonnummer formatiert. Längere oder kürzere numerische Strings werden so angezeigt, wie Sie sie gesendet haben.
Fingerabdrucksimulation
finger touch fingerprint-id: Simuliert, dass ein Finger den Sensor berührt.
finger remove: Simuliert das Entfernen eines Fingers.
Eine Anleitung zur Verwendung dieser Befehle finden Sie im folgenden Abschnitt zur Simulation und Validierung von Fingerabdrücken.
Bildschirmaufnahme
Mit dem Befehl „screen record“ können Sie direkt vom Hostsystem aus hochwertige Videodateien des physischen Displays des Emulators aufnehmen. Das ist sehr nützlich für Pipelines zur kontinuierlichen Integration und für die automatische Fehlerberichterstellung.
screenrecord {start| stop} fileStartet oder beendet die Bildschirmaufzeichnung.- start file: Startet die Videoaufzeichnung. Die Ausgabedatei muss mit der obligatorischen Erweiterung
.webmenden. Das aufgenommene Video wird direkt im Konsolenausgabeverzeichnis Ihres AVD gespeichert:~/.android/avd/avd_name.avd/console_out/file. - stop file: Beendet die aktive Bildschirmaufzeichnung.
- start file: Startet die Videoaufzeichnung. Die Ausgabedatei muss mit der obligatorischen Erweiterung
Automatisierung und Makro
Mit dem Automatisierungs-Subsystem können Entwickler Makrostatusübergänge auf dem ausgeführten virtuellen Gerät aufzeichnen und wiedergeben, um automatisierte Testläufe auszuführen.
automation {record| stop-record| play| stop-play}Verwaltet automatisierte Makroaufzeichnungen.- record: Beginnt mit der Aufzeichnung von Änderungen des Gerätestatus und Eingaben.
- stop-record: Beendet die aktuelle Makroaufzeichnung.
- play: Beginnt mit der Wiedergabe einer aufgezeichneten Makrosequenz.
- stop-play: Die aktive Makro-Wiedergabesequenz wird angehalten.
Physik (6 Freiheitsgrade)
Mit den Physikbefehlen wird die Aufzeichnung von räumlichen Posen für physische Bewegungsmodelle mit sechs Freiheitsgraden (6DoF) verwaltet, die zur Simulation von erweitertem Motion Tracking verwendet werden.
physics {record-gt| stop}Verwaltet Aufnahmen von Modellen für physische Posen.- record-gt: Beginnt mit der Aufzeichnung von 6DoF-Bewegungsdaten für die Ground Truth.
- stop: Der aktuelle Prozess zur Aufzeichnung von Ground Truth wird angehalten.
Erweiterte Gerätesteuerung
In diesem Abschnitt werden hochspezialisierte Konsolenbefehlsendpunkte für erweiterte Emulationskonfigurationen zusammengefasst, darunter Netzwerkproxys, Konfigurationen mit mehreren Displays, Rendering-Überschreibungen und direktes Hypervisor-Debugging.
multidisplay {add| del}Fügt sekundäre virtuelle Monitore hinzu oder löscht sie, um Konfigurationen mit mehreren Bildschirmen zu testen. Hinweis:Sekundäre Monitore werden in faltbaren Profilen wie dem Pixel Fold oder dem Resizable-Emulator nicht unterstützt.proxy {set| clear}Konfiguriert die Netzwerk-Proxy-Weiterleitung programmatisch über die Konsole.- set host port: Konfiguriert die Einstellungen für den Zielproxy.
- clear: Setzt die Proxykonfigurationen auf die Standardeinstellungen zurück. Hinweis:Proxy-Set-Vorgänge schlagen in monitorlosen Ausführungsumgebungen fehl.
virtualscene-image {wall| table} image_pathPasst die Hintergrundwände oder horizontalen Tische an, die im Kamerafeed der virtuellen Szene angezeigt werden, mit einer benutzerdefinierten Bilddatei an.resize-display scalePasst die Bildschirmauflösung dynamisch zwischen voreingestellten Skalierungen an. Hinweis:Auflösungsanpassungen werden in monitorlosen Konfigurationen nicht unterstützt.nodraw {on| off}Deaktiviert das Rendern der physischen Benutzeroberfläche auf dem Hostbildschirm, um den Systemarbeitsspeicher und die GPU-Last bei umfangreichen automatisierten Hintergrundläufen ohne Benutzeroberfläche zu reduzieren.grpc portKonfiguriert die erweiterte programmatische Gerätesteuerung über benutzerdefinierte gRPC-Port-Endpunkte.qemu monitorBietet direkten interaktiven Terminalzugriff auf die Konsole des zugrunde liegenden Hypervisors. Dieser Befehl kann nur über aktive Telnet-Konsolensitzungen eingegeben werden.icebox track pidAktiviert automatische System-Snapshots, wenn im angegebenen App-Prozess eine unbehandelte Ausnahme oder ein Absturz auftritt.phonenumber numberLegt die virtuelle lokale Telefonnummer des Zielgeräts fest.
Programmatische gRPC-Schnittstelle
Moderne Emulatorversionen unterstützen neben der alten Telnet-Konsole auch eine leistungsstarke programmatische gRPC-Schnittstelle. Die Telnet-Konsole eignet sich zwar gut für schnelle interaktive Sitzungen oder einfache Skripts, die gRPC-Schnittstelle ist jedoch für leistungsstarke, sichere und robuste automatisierte Steuerung in Continuous Integration (CI) und Headless-Umgebungen konzipiert. Durch die Bereitstellung direkter Dienstendpunkte entfällt bei gRPC die Notwendigkeit, Textstreams zu parsen, Terminal-Session-Handshakes zu verwalten oder unverschlüsselte localhost-Ports freizugeben.
Die folgende Tabelle enthält einen Vergleich der Leistung, Sicherheit und Funktionen der alten Telnet-Konsole und der modernen programmatischen gRPC-Schnittstelle, damit Sie die richtige Wahl treffen können:
| Funktion | Telnet-Konsole | gRPC-Schnittstelle |
|---|---|---|
| Optimal für | Manuelles Debugging, interaktive Sitzungen | Monitorlose CI/CD-Umgebungen, umfangreiche automatisierte Testumgebungen. |
| Geschwindigkeit | Langsamer; Text-Overhead, Verbindungslatenz. | Optimiert; gemultiplextes HTTP/2, schnelles Proto. |
| Sicherheit | Nicht verschlüsselt; lokale Ports (5554–5585). | Kann mit TLS gesichert werden, funktioniert über Netzwerke. |
| Streams | Nicht unterstützt; nur Anfrage/Antwort. | Streams für Logcat und Gast-Audioaufnahmen. |
| Medien | Schreibt Ausgabedateien auf die Host-/Gastfestplatte. | Direkte binäre Puffer über das Kabel. |
| Gastbetriebssystem | Beschränkt auf feste Emulatorbefehle. | Führt native Bash-Shell-Befehle des Gastbetriebssystems aus. |
gRPC starten und aufrufen
Wenn Sie die gRPC-Endpunkte verwenden möchten, starten Sie den Android-Emulator über die Befehlszeile und geben Sie das Flag -grpc an, um den Loopback-Zielport festzulegen.
# Start the emulator with the gRPC service enabled on port 8556
emulator -grpc localhost:8556 @Pixel_Fold
Sobald der Emulator mit aktiviertem gRPC-Dienst ausgeführt wird, können Sie programmatische RPC-Aufrufe ausführen. Verwenden Sie für Befehlszeilentests das grpcurl-Dienstprogramm, um mit den Diensten des Emulators zu kommunizieren. Alle Anfragen sind im JSON-Format formatiert und werden als Klartext gesendet.
# 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
Telnet-Konsole zu gRPC-Dienstzuordnung
In der folgenden Referenztabelle werden die alten Telnet-Konsolenbefehle den entsprechenden gRPC-Diensten und ‑Methoden zugeordnet. Außerdem wird gezeigt, wie gängige Interaktionen mit virtuellen Geräten programmatisch automatisiert werden können:
| Kategorie | Alter Telnet-Befehl | gRPC-Dienst / Methode |
|---|---|---|
| Status | ping |
EmulatorController/getStatus |
| Status | avd name |
incubating.AvdService/getAvdInfo |
| Status | kill |
EmulatorController/setVmState |
| Status | restart |
EmulatorController/setVmState |
| Stromversorgung | power display |
EmulatorController/getBattery |
| Stromversorgung | power capacity |
EmulatorController/setBattery |
| Geo Loc | geo fix |
EmulatorController/setGps |
| Sensoren | sensor set |
incubating.SensorService/setSensor |
| Biometrisches Verfahren | finger touch |
EmulatorController/sendFingerprint |
| Haltung | posture |
EmulatorController/setPosture |
| Haltung | physics/fold |
EmulatorController/setPhysicalModel |
| SMS | sms send |
EmulatorController/sendSms |
| GSM-Anruf | gsm call |
EmulatorController/sendPhone |
| GSM-Anruf | phonenumber |
EmulatorController/setPhoneNumber |
| Weiterleitung | redir add |
Waterfall/ForwardPort |
| Eingabe | event send EV_KEY |
EmulatorController/sendKey |
| Eingabe | event send EV_ABS |
EmulatorController/sendTouch |
| Medien | screenrecord |
incubating.ScreenRecording |
| Rendering | nodraw |
EmulatorController/setDisplayMode |
| Snapshots | avd snapshot list |
SnapshotService/ListSnapshots |
| Snapshots | avd snapshot load/save |
SnapshotService/LoadSnapshot |
Programmatische Befehle, die nur für gRPC gelten
Die gRPC-Schnittstelle bietet mehrere innovative Funktionen, die über alte Telnet-Konsolenverbindungen physisch nicht ausgeführt werden können. Dazu gehören das direkte Logcat-Streaming, die bidirektionale Audioaufnahme oder -einspeisung, Änderungen an der Host-GUI und der direkte Shell-Zugriff.
| gRPC-Dienst / Methode | Parameter | Funktion |
|---|---|---|
streamLogcat |
{"maxLines": 100} |
Streamt logcat-Ausgaben des Gastsystems |
streamAudio |
{} |
Streamt Lautsprecher-Audio über das Kabel |
injectAudio |
{"audio": "..."} |
Mikrofon-Audiostreams werden eingefügt |
UiController |
{"theme": "DARK"} |
Ändert die Fensterdesigns des Hostfensters |
Waterfall/Exec |
{"cmd": "ls"} |
Führt native Shell-Befehle des Gastbetriebssystems aus |
Fingerabdrucksimulation und ‑validierung
Mit dem Befehl „finger“ können Sie die Fingerabdruckauthentifizierung für Ihre App simulieren und validieren. Sie benötigen SDK Tools 24.3 oder höher und Android 6.0 (API-Level 23) oder höher.
So simulieren und validieren Sie die Fingerabdruckauthentifizierung:
Wenn Sie noch keine Fingerabdruck-ID haben, registrieren Sie einen neuen Fingerabdruck im Emulator. Wählen Sie dazu Einstellungen > Sicherheit > Fingerabdruck aus und folgen Sie der Anleitung.
Richten Sie Ihre App so ein, dass sie die Fingerabdruckauthentifizierung akzeptiert. Nachdem Sie diese Einrichtung abgeschlossen haben, wird auf Ihrem Gerät der Bildschirm für die Fingerabdruckauthentifizierung angezeigt.
Während in Ihrer App der Bildschirm für die Fingerabdruckauthentifizierung angezeigt wird, rufen Sie die Konsole auf, geben Sie den Befehl
finger touchund die von Ihnen erstellte Fingerabdruck-ID ein. Dadurch wird eine Berührung mit dem Finger simuliert.Geben Sie dann den Befehl
finger removeein, um das Entfernen des Fingers zu simulieren. Ihre App sollte so reagieren, als hätte ein Nutzer den Fingerabdrucksensor berührt und dann den Finger wieder entfernt.