Jedes ausgeführte virtuelle Gerät stellt eine Konsole bereit, mit der Sie die emulierte Geräteumgebung abfragen und steuern können. Mit der Console können Sie beispielsweise 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 Anwendungen 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, verwenden Sie telnet
, um eine Verbindung zum Konsolenport herzustellen und Ihr Authentifizierungstoken bereitzustellen. Jedes Mal, wenn in der Konsole OK angezeigt wird, können Befehle akzeptiert werden. Es gibt keinen typischen Prompt.
So stellen Sie eine Verbindung zur Konsole eines 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. - Nachdem die Verbindung zur Konsole hergestellt wurde, geben Sie Console-Befehle ein.
- Geben Sie zum Beenden der Konsolensitzung
quit
oderexit
ein.
telnet localhost console-port
Im Titel des Emulatorfensters wird die Portnummer der Konsole aufgeführt, wenn die Ausführung in einem separaten Fenster, aber nicht in einem Toolfenster ausgeführt wird. Der Fenstertitel für einen Emulator mit Konsolen-Port 5554 könnte beispielsweise Nexus_5X_API_23:5554
lauten. Außerdem gibt der Befehl adb devices
eine Liste der ausgeführten virtuellen Geräte und ihrer Konsolenportnummern aus. Weitere Informationen findest du unter Geräteabfrage.
Hinweis: Der Emulator überwacht die Ports 5554 bis 5585 auf Verbindungen und akzeptiert nur Verbindungen von localhost
.
Bevor Sie Konsolenbefehle eingeben können, ist eine Authentifizierung für die Emulatorkonsole erforderlich. auth_token
muss mit dem Inhalt der Datei .emulator_console_auth_token
in Ihrem Basisverzeichnis übereinstimmen.
Wenn diese Datei nicht vorhanden ist, erstellt der Befehl telnet localhost console-port
die Datei. Sie enthält ein zufällig generiertes Authentifizierungstoken. Löschen Sie das Token aus der Datei .emulator_console_auth_token
oder erstellen Sie eine leere Datei, falls diese noch nicht vorhanden ist, um die Authentifizierung zu deaktivieren.
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 try 'help <command>' for command-specific help OK exit Connection closed by foreign host.
Emulator-Befehlsreferenz
In der folgenden Tabelle werden die Befehle der Emulator-Konsole mit ihren Parametern und Werten beschrieben:
Allgemeine Befehle | Beschreibung |
---|---|
avd {stop|start|status|name}
|
Abfragen, steuern und verwalten das virtuelle Gerät so:
|
avd snapshot {list|save name|load name|delete
name}
|
Speichert und stellt den Gerätestatus in Snapshots wieder her:
Im folgenden Beispiel wird ein Snapshot mit dem Namen avd snapshot save firstactivitysnapshot |
fold
|
Wenn das Gerät faltbar und derzeit aufgeklappt ist, wird es faltbar und so konfiguriert, dass sein kleineres Display angezeigt wird. |
unfold
|
Klappt das Gerät auf, um sein größeres Display anzuzeigen, wenn es faltbar und derzeit zugeklappt ist. |
kill
|
Beendet das virtuelle Gerät. |
ping
|
Überprüft, ob das virtuelle Gerät ausgeführt wird. |
rotate
|
Dreht das AVD in 45-Grad-Schritten gegen den Uhrzeigersinn. |
Emulator abstürzen | 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 Tags zur Fehlerbehebung 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
|
Fügt eine neue Portweiterleitung hinzu:
|
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 ein GPS-Standortsignal an den Emulator gesendet wird. Sie können einen der folgenden |
|
geo fix longitude latitude [altitude] [satellites] [velocity]
|
Sendet einen einfachen GPS-Standort an den Emulator.
Geben Sie longitude und latitude in Dezimalgraden an. Verwenden Sie eine Zahl von 1 bis 12, um die Anzahl von satellites anzugeben, die zur Bestimmung der Position verwendet werden soll. 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. Beginne sentence mit „$GP“.
Derzeit werden nur Sätze vom Typ "$GPGGA" und "$GPRCM" unterstützt. Das folgende Beispiel ist ein GPGGA-Satz (Global Positioning System Fix Data), der 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 | Beschreibung |
event types
|
Listet alle gefälschten Ereignistypen auf. Bei Ereignissen, die Codes enthalten, ist 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 ...]
|
Es wird mindestens ein fiktiver Ereignistyp gesendet. |
event codes type
|
Listet die Ereigniscodes für den angegebenen Fake-Ereignistyp auf. |
event send type[:code]:[value] [...]
|
Sendet ein oder mehrere fiktive Ereignisse mit optionalen Codes und Codewerten.
Um genau herauszufinden, welches Ereignis gesendet werden soll, können Sie den Befehl Folgende Ereignisse werden beim Drücken der Ein/Aus-Taste 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, sende zwei EV_KEY -Ereignisse für Tastendruck und Tastenbelegung:
event send EV_KEY:KEY_POWER:0 OK event send EV_KEY:KEY_POWER:1 OK |
event text message
|
Sendet eine Zeichenfolge, die Tastendruck 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 automatisch verworfen. |
Ein/Aus-Taste | Beschreibung |
power display
|
Zeigt den Akku- und Ladegerätstatus an. |
power ac {on|off}
|
Legt den Wechselstatus für das Laden 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
|
Überprü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, damit Sie die Anwendung in einer Umgebung testen können, die für tatsächliche Ausführungsbedingungen besser ist. Sie können beim Start des Emulators eine Latenzstufe oder einen Bereich festlegen oder die Latenz über die Console ändern, während die Anwendung im Emulator ausgeführt wird. Das Netzwerk latency hat eines der folgenden Formate (Zahlen in Millisekunden): Netzwerklatenzformat:
Verwenden Sie zum Festlegen der Latenz beim Emulatorstart die Emulatoroption emulator -netdelay gprs emulator -netdelay 40,100 Wenn Sie Änderungen an der Netzwerkverzögerung während der Ausführung des Emulators vornehmen möchten, 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 Geschwindigkeit über die Console ändern, während die Anwendung im Emulator ausgeführt wird. Das Netzwerk Format der Netzwerkgeschwindigkeit:
Verwenden Sie zum Festlegen der Netzwerkgeschwindigkeit beim Start des Emulators 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. Bei CDMA geben Sie eine Aboquelle und die Liste der bevorzugten Roaming-Nutzer an. Das Android-System behandelt simulierte Anrufe genauso 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 den Status der GPRS-Sprachverbindung so:
|
gsm hold
|
Ändert den Status eines Aufrufs in hold . Sie können einen Aufrufstatus nur dann in hold ändern, wenn der aktuelle Status active oder waiting ist.
|
gsm list
|
Listet alle ein- und ausgehenden Anrufe mit ihrem Status auf. |
gsm status
|
Meldet den aktuellen GSM-Sprach-/Datenstatus. Die Werte sind die für die Befehle voice und data beschriebenen Werte.
|
gsm signal {rssi|ber}
|
Ändert die gemeldete Signalstärke (RSSI) und die 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 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 deren Werte so enthält:
|
cdma prl_version version
|
Gibt die aktuelle Version der Roaming-Liste (Preferred Roaming List, PRL) aus. Die Versionsnummer ist für die PRL-Datenbank bestimmt, die Informationen enthält, die während der Systemauswahl und des Erfassungsprozesses 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 im 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 sehen Sie eine Beispielausgabe 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 werden für den Beschleunigungssensor 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
|
Erzeugt eine emulierte eingehende SMS. In der folgenden Liste werden die Parameter und ihre Werte beschrieben:
Im folgenden Beispiel wird die Nachricht „Hallo dort“ an die Telefonnummer 4085555555 gesendet: sms send 4085555555 hi there Die Konsole leitet die SMS an das Android-Framework weiter, das sie dann an eine App in dem Emulator weitergibt, die SMS verarbeitet, z. B. die Messages App. Bei zehn Nummern wird die SMS von der App als Telefonnummer formatiert. Längere oder kürzere numerische Strings zeigen an, wie Sie sie gesendet haben.
|
Fingerabdrucksimulation | Beschreibung |
finger touch fingerprint-id
|
Simuliert einen Finger, der den Sensor berührt. |
finger remove
|
Simuliert das Entfernen der Finger.
Anweisungen zur Verwendung dieser Befehle finden Sie im folgenden Abschnitt über Fingerabdrucksimulation und -Validierung. |
Fingerabdrucksimulation und -validierung
Mit dem Befehl finger
kannst du die Fingerabdruckauthentifizierung für deine App simulieren und 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 Registrierungsanleitung.
- Richte deine App so ein, dass sie die Fingerabdruck-Authentifizierung akzeptiert. Nachdem du diese Einrichtung durchgeführt hast, wird auf deinem Gerät der Bildschirm zur Fingerabdruckauthentifizierung angezeigt.
- Während Ihre App den Bildschirm zur Fingerabdruckauthentifizierung anzeigt, rufen Sie die Konsole auf und geben Sie den Befehl
finger touch
und die von Ihnen erstellte Fingerabdruck-ID ein. Dies simuliert eine Berührung mit dem Finger. - Geben Sie dann den Befehl
finger remove
ein, um das Entfernen des Fingers zu simulieren.Deine App sollte so reagieren, als ob ein Nutzer ihn berührt und dann den Finger vom Fingerabdrucksensor entfernt hätte.