Jedes ausgeführte virtuelle Gerät bietet eine Konsole, mit der Sie die emulierte Geräteumgebung abfragen und steuern können. Beispielsweise können Sie mit der Console die Portweiterleitung, Netzwerkeigenschaften und Telefonieereignisse verwalten, während Ihre Anwendung 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, verwenden Sie telnet
, um eine Verbindung zum Konsolenport herzustellen und Ihr Authentifizierungstoken anzugeben. Jedes Mal, wenn in der Konsole OK angezeigt wird, können Befehle angenommen werden. Es gibt keinen typischen Prompt.
So stellen Sie eine Verbindung zur Konsole eines laufenden virtuellen Geräts her:
- Öffnen Sie ein Terminalfenster und geben Sie den folgenden Befehl ein:
- Wenn in der Konsole
OK
angezeigt wird, geben Sie den Befehlauth auth_token
ein. - Wenn Sie mit der Konsole verbunden sind, geben Sie Konsolenbefehle ein.
- Geben Sie zum Beenden der Konsolensitzung
quit
oderexit
ein.
telnet localhost console-port
Der Titel des Emulatorfensters enthält die Portnummer der Konsole, wenn sie in einem separaten Fenster ausgeführt wird, aber nicht, wenn sie 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 laufenden virtuellen Geräte und deren Konsolenportnummern aus. Weitere Informationen findest du unter Geräte abfragen.
Hinweis: Der Emulator wartet auf Verbindungen an den Ports 5554 bis 5585 und akzeptiert nur Verbindungen von localhost
.
Bevor Sie Konsolenbefehle eingeben können, erfordert die Emulatorkonsole eine Authentifizierung. auth_token
muss mit dem Inhalt der .emulator_console_auth_token
-Datei in Ihrem Basisverzeichnis übereinstimmen.
Ist die Datei nicht vorhanden, erstellt der Befehl telnet localhost console-port
die Datei, die ein zufällig generiertes Authentifizierungstoken enthält. 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 noch nicht vorhanden.
Geben Sie help
, help command
oder help-verbose
ein, um eine Liste der Konsolenbefehle aufzurufen und mehr über bestimmte Befehle zu erfahren.
Hier ist eine 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 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}
|
Das virtuelle Gerät wird wie folgt abgefragt, gesteuert und verwaltet:
|
avd snapshot {list|save name|load name|delete
name}
|
Speichert den Gerätestatus in Snapshots und stellt ihn wie folgt wieder her:
Im folgenden Beispiel wird ein Snapshot mit dem Namen avd snapshot save firstactivitysnapshot |
fold
|
Faltt das Gerät, um die kleinere Bildschirmkonfiguration anzuzeigen, wenn das Gerät faltbar und gerade aufgeklappt ist. |
unfold
|
Wenn das Gerät faltbar und derzeit zugeklappt ist, klappt es auf, um das größere Display anzuzeigen. |
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 | Beschreibung |
crash
|
Stürzt den Emulator während der App-Ausführung ab. |
crash-on-exit |
Stürzt den Emulator ab, wenn die App beendet wird. |
Tags zur Fehlerbehebung | Beschreibung |
debug tags ...
|
Aktiviert oder deaktiviert Debug-Meldungen von 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 debug radio |
Portweiterleitung | Beschreibung |
redir list
|
Listet die aktuelle Portweiterleitung auf. |
redir add protocol:host-port:guest-port
|
Dadurch wird eine neue Portweiterleitung hinzugefügt:
|
redir del protocol:host-port
|
Löscht eine Portweiterleitung.
|
Geografischer Standort | Beschreibung |
Legt den geografischen Standort fest, der an die in einem Emulator ausgeführten Apps gemeldet wird, indem eine GPS-Standortbestimmung an den Emulator gesendet wird. Sie können einen der folgenden |
|
geo fix longitude latitude [altitude] [satellites] [velocity]
|
Sendet ein einfaches GPS-Signal an den Emulator.
Geben Sie longitude und latitude im Dezimalformat an. Verwenden Sie eine Zahl von 1 bis 12, um die Anzahl der satellites anzugeben, die zur Bestimmung der Position verwendet werden soll, 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 ob er von einem emulierten GPS-Modem gesendet worden wäre. Beginnen Sie sentence 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, Position 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 | Beschreibung |
event types
|
Listet alle gefälschten Ereignistypen 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 fiktiven Ereignistyp auf. |
event send type[:code]:[value] [...]
|
Sendet ein oder mehrere gefälschte Ereignisse mit optionalen Codes und Codewerten.
Wenn Sie genau herausfinden möchten, welches Ereignis gesendet werden soll, können Sie den Befehl Beim Drücken der Ein/Aus-Taste werden die folgenden Ereignisse generiert: 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 00000000Wenn du beispielsweise ein langes Drücken der Ein/Aus-Taste simulieren möchtest, werden zwei EV_KEY -Ereignisse für die Tastenbelegung und die Tastenbetätigung gesendet: 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 gemäß der aktuellen Gerätetastatur umgekehrt zugeordnet und nicht unterstützte Zeichen werden ohne Meldung verworfen. |
Ein/Aus-Taste | Beschreibung |
power display
|
Zeigt den Akku- und Ladegerätstatus an. |
power ac {on|off}
|
Legt den AC-Ladestatus auf on oder off fest.
|
power status {unknown|charging|discharging|not-charging|full}
|
Ändert den Akkustatus wie angegeben. |
power present {true|false}
|
Legt den Akku-Anwesenheitsstatus fest. |
power health {unknown|good|overheat|dead|overvoltage|failure}
|
Legt den Akkuzustand fest. |
power capacity percent
|
Legt den Status der verbleibenden Akkukapazität als Prozentsatz von 0 bis 100 fest. |
Status der Netzwerkverbindung | Beschreibung |
network status
|
Prüft den Netzwerkstatus sowie die aktuellen Verspätungs- 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 für die tatsächlichen Ausführungsbedingungen eher typisch ist. Sie können beim Start des Emulators ein Latenzniveau oder einen Latenzbereich festlegen oder die Latenz über die Konsole ändern, während die Anwendung im Emulator ausgeführt wird. Das Netzwerk latency hat folgendes Format (Zahlen sind Millisekunden): Netzwerklatenzformat:
Verwenden Sie zum Festlegen der Latenz beim Start des Emulators die Emulatoroption emulator -netdelay gprs emulator -netdelay 40,100 Wenn Sie Änderungen an der Netzwerkverzögerung vornehmen 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 Bereich festlegen oder die Frequenz über die Konsole ändern, während die Anwendung im Emulator ausgeführt wird. Das Netzwerk Format der Netzwerkgeschwindigkeit:
Wenn Sie die Netzwerkgeschwindigkeit beim Start des Emulators festlegen möchten, verwenden Sie die Emulatoroption 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:
|
Telefonieemulation | Beschreibung |
Der Android-Emulator enthält eigene GSM- und CDMA-emulierte Modems, mit denen Sie Telefoniefunktionen im Emulator simulieren können. Mit GSM können Sie beispielsweise eingehende Telefonanrufe simulieren und Datenverbindungen herstellen und beenden. Mit CDMA geben Sie eine Aboquelle und die bevorzugte Roaming-Liste an. Das Android-System verarbeitet simulierte Anrufe genau wie tatsächliche Anrufe. Der Emulator unterstützt keine Anrufe. | |
gsm {call|accept|cancel|busy} phonenumber
|
Die gsm -Parameter sind:
|
gsm {data|voice} state
|
Der Befehl data state ändert den Status der GPRS-Datenverbindung und der Befehl data voice state ändert den Status der GPRS-Sprachverbindung so:
|
gsm hold
|
Ändert den Status eines Aufrufs in hold . Sie können einen Aufrufstatus nur in hold ändern, wenn sein aktueller Status active oder waiting ist.
|
gsm list
|
Listet alle ein- und ausgehenden Anrufe und deren Status auf |
gsm status
|
Meldet den aktuellen GSM-Sprach-/Datenstatus. Die Werte sind die für die Befehle voice und data beschriebenen.
|
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:
|
gsm signal-profile num
|
Legt das Signal 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-Anbieters und ihre Werte so enthält:
|
cdma prl_version version
|
Speichert die aktuelle Version der bevorzugten Roaming-Liste (PRL). Die Versionsnummer gilt für 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 auf den Tabs Beschleunigungsmesser und Zusätzliche Sensoren auf dem Bildschirm Virtuelle Sensoren ansehen und anpassen.
|
|
sensor status |
Listet alle Sensoren und deren Status auf. Das folgende Beispiel zeigt die Ausgabe für den Befehl 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 x-, y- und z-Werte gesetzt, getrennt durch Doppelpunkte.
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 „hista“ an die Telefonnummer 4085555555 gesendet: sms send 4085555555 hi there Die Konsole leitet die SMS an das Android-Framework weiter, das sie im Emulator an eine App weitergibt, die SMS verarbeitet, z. B. die Messages App. Wenn Sie zehn Nummern übergeben, wird sie von der App als Telefonnummer formatiert. Längere oder kürzere numerische Strings zeigen die Art und Weise an, wie Sie sie gesendet haben.
|
Fingerabdrucksimulation | Beschreibung |
finger touch fingerprint-id
|
Simuliert einen Finger, der den Sensor berührt. |
finger remove
|
Simuliert die Fingerentfernung.
Eine Anleitung zur Verwendung dieser Befehle findest du im folgenden Abschnitt zur Fingerabdrucksimulation und -validierung. |
Fingerabdrucksimulation und -validierung
![](https://developer.android.com/static/studio/images/run/fingerprint_2x.png?authuser=6&hl=de)
Abbildung 1: Bildschirm zur Authentifizierung per Fingerabdruck.
Verwenden Sie den Befehl finger
, um die Fingerabdruckauthentifizierung für Ihre App zu simulieren und zu 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 zur Registrierung.
- Richte deine Anwendung so ein, dass sie die Fingerabdruck-Authentifizierung akzeptiert. Nach dieser Einrichtung zeigt dein Gerät den Bildschirm zur Fingerabdruckauthentifizierung an.
- Während Ihre App den Fingerabdruckauthentifizierungsbildschirm anzeigt, rufen Sie die Konsole auf und geben Sie den Befehl
finger touch
sowie die von Ihnen erstellte Fingerabdruck-ID ein. Dadurch wird eine Fingerberührung simuliert. - Geben Sie dann den Befehl
finger remove
ein, um die Fingerentfernung zu simulieren.Deine App sollte so reagieren, als würde ein Nutzer den Fingerabdrucksensor berühren und dann den Finger vom Display nehmen.