Jedes ausgeführte virtuelle Gerät bietet eine Konsole, über die Sie die emulierte Geräteumgebung abfragen und steuern können. Sie können die Konsole beispielsweise verwenden, um die Portweiterleitung, Netzwerkmerkmale und Telefonieereignisse zu verwalten, während Ihre App im 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 auf die Konsole zugreifen und Befehle über ein Terminalfenster eingeben möchten, stellen Sie über Telnet eine Verbindung zum Konsolenport her und geben Sie Ihr Authentifizierungstoken an. Wenn in der Konsole OK angezeigt wird, können Sie Befehle eingeben. 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-portIn der Titelleiste des Emulatorfensters wird die Portnummer der Console aufgeführt, wenn der Emulator in einem separaten Fenster ausgeführt wird, aber nicht, 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 gibt der Befehl
adb deviceseine Liste der ausgeführten virtuellen Geräte und ihrer Konsolenportnummern aus. 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.
Nachdem in der Console OK angezeigt wurde, geben Sie den Befehl
auth auth_tokenein.Bevor Sie Konsolenbefehle eingeben können, ist eine Authentifizierung für die Emulatorkonsole erforderlich.
auth_tokenmuss mit dem Inhalt der Datei.emulator_console_auth_tokenin Ihrem Basisverzeichnis übereinstimmen.Wenn diese Datei nicht vorhanden ist, wird sie mit dem Befehl
telnet localhost console-porterstellt. Sie 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, geben Sie Konsolenbefehle ein.
Geben Sie
help,help commandoderhelp-verboseein, um eine Liste der Konsolenbefehle aufzurufen und mehr über bestimmte Befehle zu erfahren.Geben Sie
quitoderexitein, um die Konsolensitzung zu beenden.
Hier ein Beispiel für eine Sitzung:
$ 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 bleiben muss, verwenden Sie die Tastenkombination adb emu, mit der der Befehl ausgeführt und die Steuerung sofort an die aufrufende Shell zurückgegeben wird:
adb emu command commandParameter
Der Aufruf mit adb emu stellt eine Verbindung zum verfügbaren Emulator her. Wenn mehrere Emulatoren gleichzeitig ausgeführt werden, müssen Sie die Seriennummer des gewünschten Emulators übergeben:
adb -s emulator-serial emu command commandParameter
Emulator-Befehlsreferenz
In den folgenden Listen werden die Befehle der Emulator-Konsole mit ihren Parametern und Werten beschrieben:
Allgemeine Befehle
avd {stop| start| status| name}Fragt das virtuelle Gerät ab, steuert und verwaltet es so:- 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, der „running“ oder „stopped“ sein kann.
- name: Fragt den Namen des virtuellen Geräts ab.
avd snapshot {list| save name| load name| delete name}speichert den Gerätestatus in Snapshots und stellt ihn so wieder her:- list: Listet alle gespeicherten Snapshots auf.
- save name: Speichert den Snapshot unter dem angegebenen 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: Klappt das Gerät zusammen, um die kleinere Bildschirmkonfiguration anzuzeigen, wenn das Gerät faltbar und derzeit aufgeklappt ist.
unfold: Klappt das Gerät auf, um die größere Bildschirmkonfiguration 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 in 45-Grad-Schritten gegen den Uhrzeigersinn.
Emulator zum Absturz bringen
crash: Der Emulator stürzt während der App-Ausführung ab.
crash-on-exit: Der Emulator stürzt ab, wenn die App beendet wird.
Debugging-Tags
debug tags ...: Aktiviert oder deaktiviert Debug-Nachrichten 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 Radio-Tag aktiviert:debug radio
Portweiterleitung
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 den in einem Emulator ausgeführten Apps gemeldet wird, indem ein GPS-Fix an den Emulator gesendet wird.
Sobald ein virtuelles Gerät ausgeführt wird, kannst du einen der folgenden Geo-Befehle ausführen. Der Emulator legt den von Ihnen eingegebenen Standort fest, indem er einen Anbieter für simulierte Standortdaten erstellt. Dieser Anbieter reagiert auf Standort-Listener, die von Apps festgelegt wurden, und stellt dem LocationManager den Standort zur Verfügung. Jede App kann den Standortmanager abfragen, um die aktuelle GPS-Position für das emulierte Gerät abzurufen, indem sie LocationManager.getLastKnownLocation("gps") aufruft.
geo fix longitude latitude [altitude] [satellites] [velocity]: Sendet eine GPS-Position an den Emulator. Geben Sie den Längen- und Breitengrad in Dezimalgrad an. Verwenden Sie eine Zahl von 1 bis 12, um die Anzahl der Satelliten anzugeben, die zur Bestimmung der Position verwendet werden sollen. 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 Hardwareereignisse
Mit dem Hardware-Ereignis-Subsystem der Emulator-Konsole können Sie praktisch jede physische Interaktion mit dem Gerät simulieren. Dazu gehören physische Tasten, Touch- und Gestensteuerung, Drehregler, Joystick-Eingaben und Hardwareschalter.
event types: Listet alle gefälschten Ereignistypen auf. Bei Ereignissen mit Codes wird die Anzahl der Codes rechts in Klammern aufgeführt. 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: Listet die Ereigniscodes für den angegebenen gefälschten Ereignistyp auf.event send type[:code]:[value] [...]: Sendet ein oder mehrere gefälschte Ereignisse mit optionalen Codes und Codewerten.
EV_KEY – Tastencode-Referenzen
Der Ereignistyp EV_KEY wird verwendet, um das Drücken und Loslassen von Tasten zu simulieren. In den folgenden Tabellen wird die umfangreiche Liste der unterstützten Schlüsselcodes in logische Kategorien unterteilt. Für jeden Tastencode wird durch das Senden des Werts 1 ein Drücken simuliert, während der Wert 0 ein Loslassen simuliert. Der Wert 2 steht für die Tastenwiederholung.
Untertabelle A: Android-Systemschlüssel
| Code | Beschreibung |
|---|---|
KEY_HOME |
Auslöser für 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öser „Lautertaste“ |
KEY_VOLUMEDOWN |
Auslöser „Leisertaste“ |
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 |
Auslöser für den Befehl „Schlafen“ |
KEY_WAKEUP |
Aktivierungsbefehl-Trigger |
KEY_NOTIFICATION |
Benachrichtigungsleiste öffnen |
KEY_MUTE |
Audioausgabe des Systems stummschalten |
KEY_MICMUTE |
Mikrofoneingang stummschalten |
KEY_BRIGHTNESSDOWN |
Helligkeit des Displays verringern |
KEY_BRIGHTNESSUP |
Helligkeit des Displays erhöhen |
KEY_PHONE |
Standard-Telefon-App öffnen |
KEY_SEND |
Anruf starten oder senden |
KEY_HEADSETHOOK |
Headset-Aufhänger (Annehmen/Auflegen) |
KEY_SCREEN |
Befehl „Bildschirmschoner aktiv“ |
KEY_CONFIG |
Menü „Konfigurationssystem“ |
KEY_SWITCHVIDEOMODE |
Videomodus des Systems wechseln |
KEY_KBDILLUMTOGGLE |
Tastaturbeleuchtung ein- oder ausschalten |
Untertabelle 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 Titel zurückspulen |
KEY_FASTFORWARD |
Aktiven Titel vorspulen |
KEY_RECORD |
Befehl zum Aufzeichnen des Triggers |
KEY_SHUFFLE |
Zufallswiedergabe aktivieren/deaktivieren |
KEY_REPEAT |
Wiederholte Wiedergabe aktivieren/deaktivieren |
KEY_MEDIA |
Medientasten-Trigger |
Untertabelle C: Navigation und allgemeine Tastaturen
| Code | Beschreibung |
|---|---|
KEY_UP |
Steuerkreuztaste „Nach oben“ |
KEY_DOWN |
Steuerkreuztaste „Nach unten“ |
KEY_LEFT |
Steuerkreuztaste „Nach links“ |
KEY_RIGHT |
Steuerkreuztaste „Nach rechts“ |
KEY_PAGEUP |
Navigation nach oben |
KEY_PAGEDOWN |
Bild-ab-Navigation |
KEY_INSERT |
Schlüsselauslöser einfügen |
KEY_DELETE |
Tastentrigger löschen |
KEY_ENTER |
Eingabetaste als Trigger |
KEY_ESC |
Escape-Taste als Trigger |
KEY_TAB |
Tabulatortaste als Trigger |
KEY_SPACE |
Leertaste als Auslöser |
KEY_BACKSPACE |
Rücktasten-Trigger |
KEY_CLEAR |
Eingabepuffer löschen |
KEY_CANCEL |
Aktive Aktion abbrechen |
KEY_OK |
Auswahl bestätigen/OK |
KEY_SELECT |
Trigger für Element auswählen |
KEY_GOTO |
Zum angegebenen Ort gehen |
KEY_HELP |
Hilfe zum Zugriffskontext |
Untertabelle D: Alphanumerische Zeichen und Tastenfeldsymbole
- 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: Modifikatortasten und Funktionstasten
- Standard-Funktionstasten:
KEY_F1bisKEY_F24(24 Codes).
| Code | Beschreibung |
|---|---|
KEY_LEFTSHIFT |
Tastaturmodifikator „Umschalttaste links“ |
KEY_RIGHTSHIFT |
Rechte Umschalttaste als Tastaturmodifikator |
KEY_LEFTCTRL |
Linke Strg-Taste |
KEY_RIGHTCTRL |
Modifikatortaste „Rechte Strg-Taste“ |
KEY_LEFTALT |
Linke Alt-Taste als Tastaturmodifikator |
KEY_RIGHTALT |
Rechte Alt-Taste als Modifikatortaste |
KEY_LEFTMETA |
Linke Meta-/Befehlstaste |
KEY_RIGHTMETA |
Rechte Meta-/Befehlstaste |
KEY_CAPSLOCK |
Feststelltaste aktivieren/deaktivieren |
KEY_NUMLOCK |
Num-Taste auf der Tastatur |
KEY_SCROLLLOCK |
Rollen-Taste aktivieren/deaktivieren |
KEY_COMPOSE |
Hilfe zum Erstellen von Zeichen |
KEY_FN |
Fn-Taste auf physischer Tastatur |
KEY_FN_ESC |
Funktionstastenkombinationen |
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 |
Sonderfunktion F |
KEY_FN_S |
Sondertaste S |
KEY_FN_B |
Sonderfunktion B |
Untergeordnete Tabelle F: Gamepads und Joysticks
| Code | Beschreibung |
|---|---|
BTN_A/BTN_B/BTN_C |
Controller-Tasten A/B/C |
BTN_X/BTN_Y/BTN_Z |
Controller-Tasten X/Y/Z |
BTN_START |
Startmenü-Button auf dem Gamepad |
BTN_SELECT |
Gamepad-Auswahltaste |
BTN_MODE |
Controllermodus-Schalter |
BTN_TL/BTN_TR |
Linke/rechte Schultertaste |
BTN_TL2/BTN_TR2 |
Linker/rechter analoger Trigger |
BTN_THUMBL/BTN_THUMBR |
Mit linkem/rechtem Stick klicken |
BTN_DPAD_UP |
Gamepad-Steuerkreuztaste „Nach oben“ |
BTN_DPAD_DOWN |
Gamepad-Steuerkreuztaste „Nach unten“ |
BTN_DPAD_LEFT |
Gamepad-Steuerkreuztaste „Nach links“ |
BTN_DPAD_RIGHT |
Gamepad-Steuerkreuz – rechter Trigger |
BTN_THUMB |
Primärer Daumentrigger des Joysticks |
BTN_TOP/BTN_TOP2 |
Obere Tasten des Joysticks |
BTN_PINKIE |
Joystick-Trigger für den kleinen Finger |
BTN_BASE bis _BASE6 |
Tasten an der Joystick-Plattformbasis |
BTN_DEAD |
Flag für inaktive Gamepad-Deadzone |
BTN_TRIGGER |
Handtrigger des physischen Joysticks |
BTN_JOYSTICK |
Generischer Joystick-Eingabecode |
Untertabelle G: Maus-, Touch- und Eingabestift-Eingaben
| Code | Beschreibung |
|---|---|
BTN_MOUSE |
Allgemeines Mauszeigerereignis |
BTN_LEFT |
Mit der linken Maustaste klicken |
BTN_RIGHT |
Rechte Maustaste drücken |
BTN_MIDDLE |
Klick mit dem Scrollrad |
BTN_SIDE |
Auslöser für die seitliche Navigationstaste |
BTN_EXTRA |
Auslöser für zusätzliche Maustaste |
BTN_FORWARD |
Klick auf die Schaltfläche „Weiter“ im Browser |
BTN_BACK |
Klick auf „Zurück“ im Browser |
BTN_TASK |
Taste zum Wechseln zwischen Systemaufgaben |
BTN_TOUCH |
Physischer Kontakt mit dem Display erkannt |
BTN_STYLUS |
Nähe des aktiven Eingabestifts |
BTN_STYLUS2 |
Sekundäre Taste am Eingabestift |
BTN_TOOL_PEN |
Eingabestift-Tool-ID |
BTN_TOOL_RUBBER |
Kennung für das Radierer-Tool des Eingabestifts |
BTN_TOOL_BRUSH |
Pinseltool-ID |
BTN_TOOL_PENCIL |
Kennzeichnung des Zeichenstift-Tools |
BTN_TOOL_AIRBRUSH |
Airbrush-Tool-Kennung |
BTN_TOOL_FINGER |
Fingerkontakt mit dem Touchscreen |
BTN_TOOL_MOUSE |
Kennung für externes Maus-Tool |
BTN_TOOL_LENS |
Optische Lupe |
BTN_TOOL_DOUBLETAP |
Flag für die Doppeltippgeschwindigkeit bei Touch-Gesten |
BTN_TOOL_TRIPLETAP |
Flag für die Geschwindigkeit der Touch-Geste „Dreimal tippen“ |
Untertabelle H: App-Verknüpfungen
| Code | Zielaktion |
|---|---|
KEY_WWW |
Startet den Standard-Webbrowser |
KEY_MAIL |
Öffnet den Standard-E‑Mail-Client |
KEY_BOOKMARKS |
Öffnet die Liste der Browserlesezeichen |
KEY_CALC |
Öffnet den Rechner |
KEY_FILE |
Öffnet den lokalen Datei-Explorer |
KEY_EDIT |
Trigger für Dokumentbearbeitung |
KEY_NEW |
Neuen Trigger für Dokument erstellen |
KEY_OPEN |
Trigger zum Öffnen von Dokumenten |
KEY_SAVE |
Trigger für Dateispeicheraufgabe |
KEY_CLOSE |
Trigger für Aufgabe zum Schließen von Dateien |
KEY_PRINT |
Trigger für Dateidruckaufgabe |
KEY_COPY |
Aktion zum Kopieren in die Zwischenablage |
KEY_PASTE |
Aktion zum Einfügen des Zwischenablagepuffers |
KEY_CUT |
Aktion zum Ausschneiden in die Zwischenablage |
KEY_UNDO |
Aktion zum Rückgängigmachen des Zwischenablagepuffers |
KEY_REDO |
Aktion zum Wiederholen des Zwischenablagepuffers |
KEY_CANCEL |
Trigger für den Abbruch des Puffers |
KEY_FIND |
Dienstprogramm für die Dokumentsuche |
KEY_REFRESH |
Dienstprogramm zum Aktualisieren von Dokumenten |
KEY_EXIT |
Dienstprogramm zum Schließen von Dokumenten |
KEY_DOCUMENTS |
Öffnet das Portal für Systemdokumente |
KEY_HOMEPAGE |
Startet den Browser mit der Startseite |
KEY_FAVORITES |
Öffnet das Portal für Browserfavoriten |
KEY_CHAT |
Startet Instant Messenger |
KEY_EMAIL |
Trigger für die Einführung alternativer E‑Mail-Adressen |
KEY_FINANCE |
Aktien-/Finanzdienstprogramm öffnen |
KEY_SPORT |
Sport-Tracking-Dienstprogramm öffnen |
KEY_SHOP |
Digitales Shoppingportal öffnen |
KEY_PLAYER |
Primären Mediaplayer öffnen |
KEY_MP3 |
Primären MP3-Player öffnen |
KEY_TEXT |
Standard-Texteditor öffnen |
KEY_LIST |
Checklisten-Dienstprogramm öffnen |
KEY_MEMO |
Notizblock/Memo-Dienstprogramm öffnen |
KEY_CALENDAR |
Öffnet das Kalender-/Terminportal |
KEY_DIRECTORY |
Öffnet das Adressverzeichnis des Systems |
KEY_COMPUTER |
Öffnet den Spezifikations-Explorer |
KEY_TV/KEY_TV2 |
Öffnet das Fernsehportal |
KEY_RADIO |
Startet das Radio-Dienstprogramm |
KEY_CD/KEY_DVD |
Aktiviert das optische Laufwerk |
KEY_AUDIO/KEY_VIDEO |
Greift auf Medienspezifikationen zu |
KEY_TUNER |
Konfiguriert Empfänger/Tuner |
KEY_SAT/KEY_SAT2 |
Konfiguriert Satellitenfeeds |
KEY_TAPE |
Kassettendeck abspielen |
KEY_VCR |
Feed des Videorekorders abspielen |
KEY_VCR2 |
Feed des VCR 2-Players abspielen |
KEY_AUX |
AUX-Eingänge |
KEY_SETUP |
Menü „Einrichtungskonfiguration“ |
KEY_PROG1 bis _PROG4 |
Benutzerdefinierte Programmschlüssel |
KEY_ZOOM |
Zoom-Darstellungsbereich ein-/ausblenden |
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 |
Untertiteloberfläche ein-/ausblenden |
KEY_ANGLE |
Kamerawinkel ändern |
KEY_EPG |
Elektronischen Programmführer öffnen |
KEY_PVR |
Persönlichen Videorecorder öffnen |
KEY_MHP |
Offene Multimedia-Plattform für das Zuhause |
KEY_CHANNEL |
TV-Tuner-Kanäle öffnen |
KEY_CHANNELUP |
TV-Kanal nach oben wechseln |
KEY_CHANNELDOWN |
TV-Kanal nach unten wechseln |
KEY_RED |
Rote interaktive Schaltfläche |
KEY_GREEN |
Grüne interaktive Schaltfläche |
KEY_YELLOW |
Gelber interaktiver Button |
KEY_BLUE |
Blue interactive button |
KEY_FIRST |
Erste Artikeloption auswählen |
KEY_LAST |
Option „Letztes Element“ auswählen |
KEY_NEXT |
Option „Nächsten Titel auswählen“ |
KEY_PREVIOUS |
Option „Vorherigen Titel auswählen“ |
KEY_RESTART |
Wiederholung des Medientracks neu starten |
KEY_SLOW |
Option für Zeitlupenwiedergabe |
KEY_AB |
A-B-Wiederholungssequenzschleife |
KEY_PLAYCD |
Befehl zum Abspielen auf dem CD-Deck |
KEY_PAUSECD |
CD-Deck-Pausenbefehl |
KEY_STOPCD |
CD-Deck-Stoppbefehl |
KEY_DIGITS |
Befehl für die Eingabe über das digitale Tastenfeld |
KEY_TEEN |
Option für Teenager-Werte auf dem Tastenfeld |
KEY_TWEN |
Option „Tastenfeld-Twen-Werte“ |
KEY_DEL_EOL |
Bis zum Ende des Zeilenpuffers löschen |
KEY_DEL_EOS |
Bis zum Ende des Bildschirmpuffers löschen |
KEY_INS_LINE |
Puffer für neue Zeile einfügen |
KEY_BRL_DOT1 bis _DOT8 |
Tasteneingaben auf der Braillezeile |
KEY_VOICECOMMAND |
Startet die Sprachassistenten-App |
KEY_SELECTIVE_SCREEN |
Löst das regionale Snipping Tool aus |
KEY_BATTERY |
Fragt Benachrichtigungen zum Akkustand ab |
KEY_STAR/KEY_SHARP |
Symbole auf dem Tastenfeld des Telefons |
KEY_PLUS |
Pluszeichen auf dem Tastenfeld des Telefons |
KEY_INFO |
Infofeld-Overlay anzeigen |
KEY_TIME |
Aktuelle Uhrzeit anzeigen |
KEY_VENDOR |
Spezifikationen des Anbieters für Abfragen |
KEY_ARCHIVE |
Öffnet das lokale Archivierungsprogramm |
KEY_PROGRAM |
Konfiguriert Programmparameter |
KEY_POWER2 |
Löst die alternative Notstromversorgung aus |
EV_ABS – Absolute Bewegungsereignisse
Der Ereignistyp EV_ABS ist entscheidend für die Simulation präziser Berührungen, Drag-and-Drop-Gesten, Multi-Touch-Zoom-Aktionen und Joystick-Anpassungen. 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 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 Berührungsbereichs |
ABS_MT_TOUCH_MINOR |
Pixel | Breite der Nebenachse des Berührungsbereichs |
ABS_MT_WIDTH_MAJOR |
Pixel | Breite der Hauptachse des Werkzeugs |
ABS_MT_WIDTH_MINOR |
Pixel | Breite der Nebenachse des Werkzeugs |
ABS_MT_ORIENTATION |
0 bis 255 |
Kontaktwinkel |
ABS_MT_PRESSURE |
0 bis 255 |
Größe der Kontaktkraft |
ABS_MT_DISTANCE |
mm | Abstand zum Display beim Bewegen des Stifts über dem Display |
ABS_MT_TOOL_TYPE |
0 bis 2 |
0=Finger, 1=Kugelschreiber, 2=Bleistift |
ABS_MT_BLOB_ID |
Ganzzahl | Kontakt-Blob-ID |
ABS_MT_TOOL_X |
Pixel | X-Koordinate des Tools |
ABS_MT_TOOL_Y |
Pixel | Y-Koordinate der Werkzeugposition |
ABS_MT_SLOT |
0 bis N |
Aktiver Slot (Protokoll B) |
ABS_X/_Y/_Z |
analogue | Joystick-Koordinatenachsen |
ABS_RX/_RY/_RZ |
analogue | Joystick-Rotationsachsen |
ABS_THROTTLE/_BRAKE |
analogue | Pedale und Lenkung |
ABS_HAT0X/_HAT0Y |
-1/0/1 |
Steuerkreuz und POV-Schalter |
ABS_PRESSURE |
0 bis 255 |
Stylus-/Zeiger-Druckstufe |
ABS_DISTANCE |
mm | Hover-Abstand (Eingabestift) |
ABS_TILT_X/_TILT_Y |
Grad | Neigungswinkel des Eingabestifts |
ABS_VOLUME |
analogue | Lautstärke des Controllers |
Die Touch-Interaktion unter Android wird durch Multi-Touch-Protokolle (MT) gesteuert. Moderne Emulatoren implementieren sowohl Protokoll A (zustandslos, sendet Kontaktpakete, die durch Synchronisierungsmarkierungen getrennt sind) als auch Protokoll B (zustandsorientiert, weist Kontakte dedizierten Tracking-Slots zu). Protokoll B ermöglicht die effiziente Erfassung mehrerer gleichzeitiger Berührungen für Gesten wie das Auf- und Zuziehen.
EV_REL und EV_SW – Bewegungs- und Hardwareschalter
Die Ereigniskategorie EV_REL verwaltet relative Zeiger- oder Koordinatenänderungen, die hauptsächlich zum Emulieren externer Mausbewegungen oder Scrollräder verwendet werden. Die Ereigniskategorie EV_SW verwaltet physische Geräteschalter, z. B. ob ein Flip-Phone 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 Laptopdeckels (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=nicht angeschlossen, 1=angeschlossen) |
SW_MICROPHONE_INSERT |
0/1 |
Status der Mikrofonbuchse (0=Aus, 1=Ein) |
Syntax für die Befehlsverteilung
Wenn Sie diese Codes senden möchten, formatieren Sie den Konsolenbefehl mit Typen, Codes und Werten, die durch Doppelpunkte getrennt sind. Sie können mehrere Koordinatenänderungen in einem einzigen String in die Warteschlange stellen. Wichtig: Hängen Sie immer eine abschließende Synchronisierungsmarkierung (EV_SYN:0:0) an, um anzugeben, dass das Emulator-Framework diese Eingaben bündeln und zusammen verarbeiten soll.
Beispiele für Ereignisskripts und Gesten
Da Telnet das Senden mehrteiliger Parameter ermöglicht, kannst du realistische physische Gestenfolgen simulieren. Unten finden Sie die Strukturen von Rohereignisskripts, mit denen Sie Gesten über die Hostkonsole automatisieren können.
Tippen auf den Bildschirm simulieren
Wenn Sie ein sauberes Tippen auf den Bildschirm an einer Zielkoordinate ausführen möchten, 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
Wenn Sie eine Wischgeste zum Scrollen ausführen möchten, halten Sie den Kontakt an der Startkoordinate gedrückt, senden Sie Zwischenkoordinatenframes für die Bewegung und lassen Sie 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 zusammenziehen“ simulieren
Wenn du einen Zweifingerzoom auslösen möchtest, verwende 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
Simuliert das Einstecken oder Entfernen von Kopfhöreranschlüssen, um die Audio-Routing-Schalter zu testen. Der Wert 1 steht für das Einstecken des Kopfhörers und 0 für das Entfernen.
# 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 von einem echten Gerät abrufen
Wenn Sie die genaue Ereignissyntaxsequenz für eine benutzerdefinierte Aktion oder Tastengeste ermitteln möchten, stellen Sie eine Verbindung über adb shell her und führen Sie das Diagnosetool getevent aus.
Wenn Sie mit der Emulator-GUI interagieren, gibt die Konsole die genauen Ereigniscodes, ‑typen und ‑positionen aus.
# 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
- event text message: Sendet eine Zeichenfolge, die Tastendrücke simuliert. Die Nachricht muss ein UTF-8-String sein. Unicode-Beiträge werden entsprechend der aktuellen Gerätetastatur umgekehrt 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 Status der Netzstromversorgung auf „Ein“ oder „Aus“ 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ätsstatus als Prozentsatz von 0 bis 100 fest.
Status der Netzwerkverbindung (nur Ethernet und Mobilfunk)
Netzwerkstatus: Prüft den Netzwerkstatus und die aktuellen Verzögerungs- und Geschwindigkeitsmerkmale.
network delay latencyÄndert die emulierte Netzwerklatenz.Mit dem Emulator können Sie verschiedene Netzwerklatenzstufen simulieren, um Ihre Anwendung in einer Umgebung zu testen, die den tatsächlichen Betriebsbedingungen entspricht. Sie können beim Start des Emulators ein Latenzniveau oder einen Latenzbereich festlegen oder die Konsole verwenden, um die Latenz zu ändern, während die Anwendung im Emulator ausgeführt wird.
Das Format der Netzwerklatenz ist eines der folgenden (Zahlen sind Millisekunden):
Format für die Netzwerklatenz:
gprs: GPRS mit einem Latenzbereich von mindestens 150 und maximal 550.
edge: EDGE/EGPRS mit einem Latenzbereich von mindestens 80 und maximal 400.
umts: UMTS/3G mit einem Latenzbereich von mindestens 35 und maximal 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 Übertragungsbereich festlegen oder die Console verwenden, um die Rate zu ändern, während die App im Emulator ausgeführt wird.Das Format der Netzwerkgeschwindigkeit ist eines der folgenden (Zahlen sind Kilobit pro Sekunde):
Format der Netzwerkgeschwindigkeit:
gsm: GSM/CSD mit einer Geschwindigkeit von 14, 4 Mbit/s im Up- und Downstream.
hscsd: HSCSD mit einer Geschwindigkeit von 14,4 Mbit/s im Upload und 43,2 Mbit/s im Download.
gprs: GPRS mit einer Geschwindigkeit von 40,0 Up und 80,0 Down.
edge: EDGE/EGPRS mit einer Geschwindigkeit von 118,4 Kbit/s (Upload) und 236,8 Kbit/s (Download).
umts: UMTS/3G mit einer Geschwindigkeit von 128, 0 Kbit/s Upload und 1.920 Kbit/s Download.
hsdpa: HSDPA mit einer Geschwindigkeit von 348, 0 Mbit/s (Upload) und 14.400,0 Mbit/s (Download).
lte: LTE mit einer Geschwindigkeit von 58.000 Kbit/s (Upload) und 173.000 Kbit/s (Download).
evdo: EVDO mit einer Geschwindigkeit von 75.000 Up und 280.000 Down.
full: Unbegrenzte Geschwindigkeit, hängt aber von der Verbindungsgeschwindigkeit Ihres Computers ab.
num: Legt eine genaue Rate in Kilobit pro Sekunde fest, die sowohl für den Upload als auch für den Download verwendet wird.
up:down: Legt die genauen Raten in Kilobit pro Sekunde für Upload und Download separat fest.
Wenn Sie die Netzwerkgeschwindigkeit beim Start des Emulators festlegen möchten, verwenden Sie die Emulatoroption
-netspeed. 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} fileSendet Pakete an eine Datei. In der folgenden Liste werden die Parameter und Parameterwerte beschrieben:Hinweis: Ab Android Emulator 36.5 wird der WLAN-Verbindungstraffic standardmäßig von netsim verarbeitet. Mit dem Konsolenbefehl für die Netzwerkerfassung wird nur der Legacy-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 zur erweiterten Emulatornetzwerkverwaltung unter Netzwerkverkehr erfassen.
start file: Startet die Erfassung von Netzwerkpaketen. Aus Sicherheitsgründen muss die Datei ein reiner Dateiname sein (keine Pfadtrennzeichen wie
/und kein..). Die Paketerfassungsdatei wird im Inhaltsverzeichnis Ihres AVD im Ordnerconsole_out/gespeichert (z. B.~/.android/avd/avd_name.avd/console_out/file).stop file: Beendet das Senden von Paketen an die angegebene Datei.
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 Roamingliste an. Das Android-System verarbeitet simulierte Anrufe genau wie tatsächliche Anrufe. Der Emulator unterstützt keine Anrufaudio.
gsm {call| accept| cancel| busy} phonenumberDie gsm-Parameter sind:- call: Simuliert einen eingehenden Anruf von der Telefonnummer.
- accept: Nimmt einen eingehenden Anruf von einer Telefonnummer an und ändert den Anrufstatus in „Aktiv“. Sie können den Status eines Anrufs nur dann in „Aktiv“ ändern, wenn der aktuelle Status „Wartend“ oder „Gehalten“ ist.
- cancel: Beendet einen eingehenden Anruf von oder einen ausgehenden Anruf an phonenumber.
- busy: Beendet einen ausgehenden Anruf an die Telefonnummer und ändert den Anrufstatus in „Besetzt“. Sie können den Status eines Anrufs nur dann in „Besetzt“ ändern, wenn der aktuelle Status „Wartend“ ist.
gsm {data| voice} stateDer Befehl für den Datenstatus ändert den Status der GPRS-Datenverbindung und der Befehl für den Sprachstatus ändert den Status der GPRS-Sprachverbindung:- unregistered: Kein Netzwerk verfügbar.
- home: Im lokalen Netzwerk, kein Roaming.
- roaming: Im Roaming-Netzwerk.
- searching: Es wird nach Netzwerken gesucht.
- denied: Nur Notrufe.
- off: Wie „unregistered“.
- on: Wie „home“.
gsm hold: Ändert den Status eines Anrufs in „Warten“. Sie können den Status eines Anrufs nur dann in „Wartend“ ändern, wenn der aktuelle Status „Aktiv“ oder „Wartend“ ist.
gsm list: Listet alle ein- und ausgehenden Anrufe und ihren Status auf.
gsm status: Gibt den aktuellen GSM-Sprach- und Datenstatus an. Die Werte entsprechen den für die Sprach- und Datenbefehle beschriebenen Werten.
gsm signal {rssi| ber}Ändert die gemeldete Signalstärke (rssi) und die Bitfehlerrate (ber) für die 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 und 99 für unbekannt.
- ber: Der Bereich liegt zwischen 0 und 7 und 99 für unbekannt.
gsm signal-profile num: Legt das Signalstärkeprofil fest. „num“ ist eine Zahl von 0 bis 4.
cdma ssource sourceLegt die aktuelle CDMA-Aboquelle fest, wobei die Quelle eine netzwerkbasierte Zulassungsliste ist, 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 auf die Sensoren, die im AVD verfügbar sind. Neben dem Sensorbefehl können Sie die Einstellungen im Emulator auf dem Bildschirm „Virtuelle Sensoren“ auf den Tabs „Beschleunigungsmesser“ und „Zusätzliche Sensoren“ einsehen 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 der 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 x-, y- und z-Werte gesetzt, die durch Doppelpunkte getrennt sind.
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 „hi there“ 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 im Emulator weitergibt, die SMS verarbeitet, z. B. die Messages App. Wenn Sie 10 Ziffern übergeben, formatiert die App sie als Telefonnummer. 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 des Fingers.
Eine Anleitung zur Verwendung dieser Befehle finden Sie im folgenden Abschnitt zur Fingerabdrucksimulation und -validierung.
Bildschirmaufnahme
Mit dem Befehl zur Bildschirmaufzeichnung können Sie hochwertige Videodateien des physischen Displays des Emulators direkt vom Hostsystem aus aufnehmen. Das ist sehr nützlich für Continuous Integration-Pipelines und automatisierte Fehlerberichte.
screenrecord {start| stop} fileStartet oder beendet die Bildschirmaufzeichnung.- start file: Startet die Videoaufnahme. Die Ausgabedatei muss die obligatorische Erweiterung
.webmhaben. Das aufgenommene Video wird direkt im Konsolenausgabeverzeichnis Ihres AVD gespeichert:~/.android/avd/avd_name.avd/console_out/file. - stop file: Beendet die aktive Displayaufzeichnung.
- start file: Startet die Videoaufnahme. Die Ausgabedatei muss die obligatorische Erweiterung
Automatisierung und Makro
Mit dem Automatisierungssubsystem können Entwickler Makrostatusübergänge auf dem laufenden virtuellen Gerät aufzeichnen und wiedergeben, um automatisierte Testabläufe auszuführen.
automation {record| stop-record| play| stop-play}Verwaltet automatisierte Makroaufzeichnungen.- record: Startet die Aufzeichnung von Änderungen des Gerätestatus und von Eingaben.
- stop-record: Beendet die aktuelle Makroaufzeichnungssitzung.
- play: Startet die Wiedergabe einer aufgezeichneten Makrosequenz.
- stop-play: Hält die aktive Makrowiedergabesequenz an.
Physik (6DoF)
Mit den Physikbefehlen wird das Logging von Ground-Truth-Raumpositionen für physikalische Bewegungsmodelle mit sechs Freiheitsgraden (6DoF) verwaltet, die zur Simulation von erweitertem Motion Tracking verwendet werden.
physics {record-gt| stop}Verwaltet Aufnahmen des physischen Pose-Modells.- record-gt: Startet die Aufzeichnung von 6DoF-Bewegungsdaten für die Grundwahrheit.
- stop: Hält den aktuellen Aufzeichnungsprozess für die Grundwahrheit an.
Erweiterte Gerätesteuerung
In diesem Abschnitt werden hochspezialisierte Konsolenbefehl-Endpunkte für erweiterte Emulationskonfigurationen zusammengefasst, darunter Netzwerk-Proxys, 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 bei faltbaren Profilen wie dem Pixel Fold oder dem Emulator mit anpassbarer Größe nicht unterstützt.proxy {set| clear}Konfiguriert die Netzwerk-Proxy-Weiterleitung programmatisch über die Console.- set host port: Konfiguriert die Einstellungen des Zielproxys.
- clear: Setzt die Proxy-Konfigurationen 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, die im Kamerafeed der virtuellen Szene angezeigt werden, mit einer benutzerdefinierten Bilddatei an.resize-display scalePasst die Bildschirmauflösung dynamisch zwischen voreingestellten Skalen an. Hinweis: Auflösungsanpassungen werden in monitorlosen Konfigurationen nicht unterstützt.nodraw {on| off}Deaktiviert das physische GUI-Rendering auf dem Hostbildschirm, um den Systemspeicher und die GPU-Last bei umfangreichen Hintergrundautomatisierungsläufen ohne GUI 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 automatisierte System-Snapshots, wenn beim angegebenen Anwendungsprozess eine nicht behandelte 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 eine leistungsstarke gRPC-Programmierschnittstelle. Die Telnet-Konsole eignet sich hervorragend für schnelle interaktive Sitzungen oder einfaches Scripting. Die gRPC-Schnittstelle ist dagegen für eine leistungsstarke, sichere und robuste automatisierte Steuerung in Continuous Integration- (CI) und Headless-Umgebungen konzipiert. Durch das Angebot direkter Dienstendpunkte entfällt bei gRPC die Notwendigkeit, Textstreams zu parsen, Terminal-Sitzungs-Handshakes zu verwalten oder unverschlüsselte Localhost-Ports freizugeben.
Um Ihnen die Entscheidung zwischen der alten Telnet-Konsole und der modernen programmatischen gRPC-Schnittstelle zu erleichtern, finden Sie im Folgenden einen Vergleich der Leistung, Sicherheit und Funktionen:
| Funktion | Telnet-Konsole | gRPC-Schnittstelle |
|---|---|---|
| Am besten geeignet für | Manuelles Debugging, interaktive Sitzungen. | Monitorlose CI/CD, umfangreiche automatisierte Testumgebungen. |
| Geschwindigkeit | Langsamer; Text-Overhead, Verbindungslatenz. | Optimiert; gemultiplextes HTTP/2, schnelles Proto. |
| Sicherheit | Unverschlüsselt; lokale Ports (5554–5585). | Kann mit TLS gesichert werden, funktioniert über Netzwerke. |
| Streams | Nicht unterstützt; nur Anfrage-Antwort. | Streams für Logcat, Audioaufnahme für Gäste. |
| Medien | Schreibt Ausgabedateien auf das Host-/Gastlaufwerk. | Direkte binäre Puffer über die Leitung. |
| Gastbetriebssystem | Auf feste Emulatorbefehle beschränkt. | Führt native Bash-Shell-Befehle für Gäste aus. |
gRPC starten und aufrufen
Wenn Sie die gRPC-Endpunkte verwenden möchten, starten Sie den Android-Emulator über die Befehlszeile und fügen Sie das Flag -grpc hinzu, um den Ziel-Loopback-Port anzugeben.
# 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 Dienstprogramm grpcurl, um mit den Diensten des Emulators zu kommunizieren. Alle Anfragen sind im JSON-Format formatiert und werden im 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
Zuordnung von Telnet-Konsole zu gRPC-Dienst
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 | Legacy-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 |
| Status | posture |
EmulatorController/setPosture |
| Status | 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 herkömmliche Telnet-Konsolenverbindungen physisch nicht ausgeführt werden können. Dazu gehören direktes Logcat-Streaming, bidirektionale Audioaufnahme oder -einschleusung, Änderungen an der Host-GUI und direkter Shell-Zugriff.
| gRPC-Dienst/-Methode | Parameter | Funktion |
|---|---|---|
streamLogcat |
{"maxLines": 100} |
Streamt Logcat-Ausgaben des Gastsystems |
streamAudio |
{} |
Streamt Audio vom Lautsprecher über das Kabel |
injectAudio |
{"audio": "..."} |
Fügt Mikrofon-Audiostreams ein |
UiController |
{"theme": "DARK"} |
Ändert die Fensterdesigns des Hostfensters |
Waterfall/Exec |
{"cmd": "ls"} |
Führt native Shell-Befehle des Gastbetriebssystems aus |
Fingerabdrucksimulation und -validierung
Verwende den Befehl „finger“, um die Fingerabdruckauthentifizierung für deine App zu simulieren und zu validieren. Du benötigst 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 zur Registrierung.
Richten Sie Ihre App so ein, dass sie die Fingerabdruckauthentifizierung akzeptiert. Nachdem Sie diese Einrichtung vorgenommen haben, wird auf Ihrem Gerät der Bildschirm für die Fingerabdruckauthentifizierung angezeigt.
Während auf dem Bildschirm Ihrer App die Fingerabdruckauthentifizierung angezeigt wird, rufen Sie die Konsole auf und 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.