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 die Konsole beispielsweise verwenden, um die Portweiterleitung, die Netzwerkeigenschaften und die 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
Verwenden Sie telnet, um über ein Terminalfenster auf die Konsole zuzugreifen und Befehle einzugeben. Stellen Sie dazu eine Verbindung zum Konsolenport her und geben Sie Ihr Authentifizierungstoken an. Jedes Mal, wenn in 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:
- Wenn in der Konsole
OKangezeigt wird, geben Sie den Befehlauth auth_tokenein. - Nachdem Sie eine Verbindung zur Konsole hergestellt haben, geben Sie Konsolenbefehle ein.
- Geben Sie
quitoderexitein, um die Konsolensitzung zu beenden.
telnet localhost console-port
Im 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 gibt der Befehl adb devices eine Liste der aktiven 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.
Bevor Sie Konsolenbefehle eingeben können, ist eine Authentifizierung in der Emulator-Konsole erforderlich. auth_token muss mit dem Inhalt der Datei .emulator_console_auth_token in Ihrem Basisverzeichnis übereinstimmen.
Wenn die Datei nicht vorhanden ist, wird sie mit dem Befehl telnet localhost console-port erstellt. 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_token oder erstellen Sie eine leere Datei, falls sie nicht vorhanden ist.
Geben Sie help, help command oder help-verbose ein, um eine Liste der Konsolenbefehle aufzurufen und mehr über bestimmte Befehle zu erfahren.
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.
Emulator-Befehlsreferenz
In der folgenden Tabelle werden die Emulator-Konsolenbefehle mit ihren Parametern und Werten beschrieben:
Tabelle 1 Emulator-Konsolenbefehle
| Allgemeine Befehle | Beschreibung |
|---|---|
avd {stop|start|status|name}
|
Fragt das virtuelle Gerät ab, steuert es und verwaltet es so:
|
avd snapshot {list|save name|load name|delete
name}
|
Der Gerätestatus wird in Snapshots gespeichert und wiederhergestellt. Das funktioniert so:
Im folgenden Beispiel wird ein Snapshot mit dem Namen avd snapshot save firstactivitysnapshot |
fold
|
Klappt das Gerät zusammen, um die kleinere Bildschirmkonfiguration anzuzeigen, wenn das Gerät faltbar und derzeit aufgeklappt ist. |
unfold
|
Entfaltet das Gerät, 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 um 45 Grad gegen den Uhrzeigersinn. |
| Emulator zum Absturz bringen | Beschreibung |
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 | Beschreibung |
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
Im folgenden Beispiel wird das Tag debug radio |
| Portumleitung | Beschreibung |
redir list
|
Listet die aktuelle Portweiterleitung auf. |
redir add protocol:host-port:guest-port
|
Fügt eine neue Portweiterleitung hinzu, wie folgt:
|
redir del protocol:host-port
|
Löscht eine Portweiterleitung.
|
| Geografischer Standort | Beschreibung |
|
Legt den geografischen Standort fest, der den Apps, die in einem Emulator ausgeführt werden, gemeldet wird, indem ein GPS-Fix an den Emulator gesendet wird. Sie können einen der folgenden |
|
geo fix longitude latitude [altitude] [satellites] [velocity]
|
Sendet einen einfachen GPS-Fix an den Emulator.
Geben Sie longitude und latitude in Dezimalgrad an. Geben Sie mit einer Zahl von 1 bis 12 die Anzahl der satellites an, die zur Bestimmung der Position verwendet werden sollen, und geben Sie altitude in Metern und velocity 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. Beginnen Sie sentence mit „$GP“.
Derzeit werden nur die Satztypen „$GPGGA“ und „$GPRCM“ unterstützt. Das folgende Beispiel ist ein GPGGA-Satz (Global Positioning System Fix Data), mit dem die Zeit-, Positions- und Fix-Daten für einen GPS-Empfänger abgerufen werden:
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 | Beschreibung |
event types
|
Listet alle Arten von gefälschten Ereignissen auf. Bei Ereignissen mit Codes wird die Anzahl der Codes rechts in Klammern angegeben.
event types
event <type> can be an integer or one of the following aliases:
EV_SYN
EV_KEY (405 code aliases)
EV_REL (2 code aliases)
EV_ABS (27 code aliases)
EV_MSC
EV_SW (4 code aliases)
EV_LED
EV_SND
EV_REP
EV_FF
EV_PWR
EV_FF_STATUS
EV_MAX
OK
|
event send types [types ...]
|
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 Code-Werten.
Mit dem Befehl Das sind die Ereignisse, die beim Drücken der Ein/Aus-Taste generiert werden:
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
EV_KEY-Ereignisse für „keydown“ und „keyup“:
event send EV_KEY:KEY_POWER:0
OK
event send EV_KEY:KEY_POWER:1
OK
|
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äte-Tastatur rückwärts zugeordnet und nicht unterstützte Zeichen werden stillschweigend verworfen. |
| Steuerelemente für den Energiezustand | Beschreibung |
power display
|
Zeigt den Status des Akkus und des Ladegeräts an. |
power ac {on|off}
|
Legt den AC-Ladestatus auf on oder off fest.
|
power status {unknown|charging|discharging|not-charging|full}
|
Ändert den Akkustand 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 Status der verbleibenden Akkukapazität als Prozentwert zwischen 0 und 100 fest. |
| Status der Netzwerkverbindung (nur Ethernet und Mobilfunk) |
Beschreibung |
network status
|
Prüft den Netzwerkstatus sowie die aktuellen Verzögerungs- und Geschwindigkeitsmerkmale. |
network delay latency
|
Ändert die emulierte Netzwerklatenz. Mit dem Emulator können Sie verschiedene Netzwerk-Latenzzeiten simulieren, um Ihre App in einer Umgebung zu testen, die den tatsächlichen Laufbedingungen ähnelt. 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. Das Format des Netzwerks latency ist eines der folgenden (Zahlen in Millisekunden): Format für Netzwerklatenz:
Wenn Sie die Latenz beim Start des Emulators festlegen möchten, verwenden Sie die emulator -netdelay gprs emulator -netdelay 40,100 Wenn 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 gprs network delay 40 100 |
network speed speed |
Mit dem Emulator können Sie verschiedene Netzwerkübertragungsraten simulieren.
Sie können beim Start des Emulators eine Übertragungsrate oder einen Übertragungsratenbereich festlegen oder die Rate über die Konsole ändern, während die App im Emulator ausgeführt wird. Das Format des Netzwerks Format für Netzwerkgeschwindigkeit:
Wenn Sie die Netzwerkgeschwindigkeit beim Start des Emulators festlegen möchten, verwenden Sie die emulator -netspeed gsm @Pixel_API_26 emulator -netspeed 14.4,80 @Pixel_API_26 Wenn 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 14.4 80 |
network capture {start|stop} file |
Sendet Pakete an eine Datei. In der folgenden Liste werden die Parameter und Parameterwerte beschrieben:
|
| Telefonie-Emulation | Beschreibung |
| 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} phonenumber
|
Die gsm-Parameter sind die folgenden:
|
gsm {data|voice} state
|
Mit dem Befehl data state wird der Status der GPRS-Datenverbindung geändert und mit dem Befehl data voice state der Status der GPRS-Sprachverbindung. Die Änderungen sind wie folgt:
|
gsm hold
|
Ändert den Status eines Anrufs in hold. Sie können den Anrufstatus nur dann in hold ändern, wenn der aktuelle Status active oder waiting ist.
|
gsm list
|
Listet alle eingehenden und ausgehenden Anrufe und deren Status auf. |
gsm status
|
Gibt den aktuellen GSM-Sprach-/Datenstatus an. Die Werte sind die, die für die Befehle voice und data beschrieben werden.
|
gsm signal {rssi|ber}
|
Ändert die gemeldete Signalstärke (rssi) und Bitfehlerrate (ber) in den nächsten 15 Sekunden des Updates. In der folgenden Liste werden die Parameter und ihre Werte beschrieben:
|
gsm signal-profile num
|
Legt das Profil für die Signalstärke fest.
num ist eine Zahl zwischen 0 und 4.
|
cdma ssource source
|
Legt die aktuelle CDMA-Aboquelle fest, wobei source eine netzwerkbasierte Zulassungsliste ist, die die Abonnenten des CDMA-Mobilfunkanbieters und ihre Werte enthält, wie folgt:
|
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 Akquisitionsprozesses verwendet werden. |
| Sensoren im Emulator verwalten | Beschreibung |
Diese Befehle beziehen sich darauf, welche Sensoren im AVD verfügbar sind. Neben dem Befehl sensor können Sie die Einstellungen im Emulator auch auf dem Bildschirm Virtuelle Sensoren auf den Tabs Beschleunigungsmesser und Zusätzliche Sensoren aufrufen und anpassen.
|
|
sensor status |
Listet alle Sensoren und ihren Status auf. Im Folgenden finden Sie ein Beispiel für die Ausgabe des Befehls sensor status:
|
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.812348
Die durch Doppelpunkte(:) getrennten |
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 | Beschreibung |
sms send sender-phone-number textmessage
|
Generiert eine emulierte eingehende SMS. In der folgenden Liste werden die Parameter und ihre Werte beschrieben:
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 | Beschreibung |
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 Simulation und Validierung von Fingerabdrücken. |
Fingerabdrucksimulation und ‑validierung
Abbildung 1: Bildschirm für die Fingerabdruckauthentifizierung
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 Console 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.