Emulator-Konsolenbefehle senden

Jedes laufende virtuelle Gerät stellt eine Konsole bereit, mit der Sie das emulierte Geräteumgebung. Sie können die Konsole beispielsweise zur Verwaltung der Portweiterleitung, des Netzwerks Eigenschaften und Telefonieereignisse, während die App im Emulator ausgeführt wird.

Für die folgenden Befehle muss bereits ein Emulator ausgeführt werden. Weitere Informationen Informationen zum Ausführen eines Emulators findest du unter Apps im Android-Emulator ausführen und Starten Sie den Emulator über die Befehlszeile.

Konsolensitzung starten und beenden

Wenn Sie auf die Konsole zugreifen und Befehle über ein Terminalfenster eingeben möchten, verwenden Sie telnet, um Stellen Sie eine Verbindung zum Port der Konsole her und geben Sie Ihr Authentifizierungstoken an. Jedes Mal, wenn in der Konsole OK, jetzt können Befehle angenommen werden. Es gibt keinen typischen Prompt.

So stellen Sie eine Verbindung zur Konsole eines laufenden virtuellen Geräts her:

  1. Öffnen Sie ein Terminalfenster und geben Sie den folgenden Befehl ein:
  2. telnet localhost console-port

    Bei Ausführung in einem separaten Fenster wird im Titel des Emulatorfensters die Portnummer der Konsole aufgeführt. nicht in einem Tool-Fenster. Beispiel: Fenstertitel für einen Emulator, der den Konsolenport 5554 verwendet könnte Pixel8_API_34:5554 sein. Außerdem gibt der Befehl adb devices Liste laufender virtueller Geräte und ihrer Konsolen-Portnummern Weitere Informationen finden Sie unter Geräteabfrage

    Hinweis: Der Emulator wartet auf Verbindungen an den Ports 5554 bis 5585. und akzeptiert nur Verbindungen von localhost.

  3. Wenn in der Konsole OK angezeigt wird, geben Sie den Befehl auth auth_token ein.
  4. Bevor Sie Konsolenbefehle eingeben können, erfordert eine Authentifizierung. auth_token muss Sie suchen nach dem Inhalt der Datei .emulator_console_auth_token in Ihrem Basisverzeichnis.

    Sollte die Datei nicht vorhanden sein, wird der telnet localhost console-port -Befehl erstellt die Datei, die ein zufällig generiertes Authentifizierungstoken enthält. Zum Deaktivieren -Authentifizierung, löschen Sie das Token aus der .emulator_console_auth_token-Datei oder erstellen Sie eine leere Datei, falls sie noch nicht vorhanden ist.

  5. Wenn Sie mit der Konsole verbunden sind, geben Sie Konsolenbefehle ein.
  6. help, help command oder help-verbose eingeben um eine Liste der Konsolenbefehle anzuzeigen und .

  7. Geben Sie zum Beenden der Konsolensitzung quit oder exit ein.

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: <ph type="x-smartling-placeholder">
    </ph>
  • 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 sein kann. oder stopped.
  • name: Fragt den Namen des virtuellen Geräts ab.
avd snapshot {list|save name|load name|delete name} So wird der Gerätestatus in Snapshots gespeichert und wiederhergestellt: <ph type="x-smartling-placeholder">
    </ph>
  • list: Listet alle gespeicherten Snapshots auf.
  • save name: Speichert den Snapshot als name.
  • load name: Lädt den benannten Snapshot.
  • delete name: Löscht den benannten Snapshot.

Im folgenden Beispiel wird ein Snapshot mit dem Namen firstactivitysnapshot:

avd snapshot save firstactivitysnapshot
fold Lässt sich das Gerät zusammenklappen, um die kleinere Bildschirmkonfiguration anzuzeigen, wenn es faltbar und gerade geöffnet.
unfold Klappt das Gerät auf, um das größere Display anzuzeigen, wenn es faltbar und zugeklappt 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 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 führen Sie emulator -help-debug-tags aus. Weitere Informationen zur -help-debug-tags-Option (siehe Tabelle der häufig verwendeten Optionen.

Im folgenden Beispiel wird das radio-Tag aktiviert:

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: <ph type="x-smartling-placeholder">
    </ph>
  • protocol: Muss entweder tcp sein oder udp.
  • host-port: Die Portnummer, die auf dem Host geöffnet werden soll.
  • guest-port: Die Portnummer, an die Daten auf dem Emulator.
redir del protocol:host-port Löscht eine Portweiterleitung.
  • protocol: Muss entweder tcp sein oder udp.
  • host-port: Die Portnummer, die auf dem Host geöffnet werden soll.
Geografischer Standort Beschreibung

Legt den geografischen Standort fest, der an die in einem Emulator ausgeführten Apps gemeldet wird durch Senden einer GPS-Position an den Emulator.

Sie können einen der folgenden geo-Befehle ausführen, sobald ein virtueller ausgeführt wird. Der Emulator legt den eingegebenen Standort fest, indem er einen Anbieter für simulierte Standorte erstellt. Dieses auf Standort-Listener, die von Apps festgelegt wurden, und stellt den Standort LocationManager. Jede App kann den Standortmanager abfragen, um die aktuelle GPS-Standortbestimmung für das emulierte Gerät zu erhalten durch einen Anruf LocationManager.getLastKnownLocation("gps")

geo fix longitude latitude [altitude] [satellites] [velocity] Sendet ein einfaches GPS-Signal an den Emulator. longitude und latitude angeben in Dezimalgraden angegeben werden. Verwenden Sie eine Zahl zwischen 1 und 12, um die Anzahl der satellites zur Bestimmung der Position, und altitude in Metern und velocity in Knoten.
geo nmea sentence Sendet einen NMEA 0183-Satz an das emulierte Gerät, als ob es von einem emulierten Gerät gesendet wurde GPS-Modem. Beginnen Sie sentence mit "$GP". Nur '$GPGGA' und "$GPRCM" Sätze werden derzeit unterstützt. Im folgenden Beispiel ist ein GPGGA-Satz (Global Positioning System Fix Data), der Uhrzeit, Position und Korrektur der Daten eines GPS-Empfängers:
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. Für Ereignisse mit Codes wird die Anzahl der Codes in Klammern auf der rechten Seite.

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.

Um genau zu ermitteln, welches Ereignis gesendet werden soll, können Sie den Befehl adb verwenden, während die Tasten im Emulator manuell.

Folgende Ereignisse werden erzeugt, wenn Sie die Ein/Aus-Taste drücken:

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
      
Wenn Sie beispielsweise ein langes Drücken der Ein/Aus-Taste simulieren möchten, senden Sie zwei 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ätetastatur umgekehrt zugeordnet und nicht unterstützt. 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 die verbleibende Akkukapazität fest Prozentangabe von 0 bis 100 angeben.
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 Netzwerk-Latenzstufen simulieren, um Ihre in einer Umgebung, die eher für die tatsächlichen Laufbedingungen geeignet ist. Sie können Latenzstufe oder -bereich beim Start des Emulators festlegen oder die Methode Konsole, um die Latenz zu ändern, während die Anwendung im Emulator ausgeführt wird.

Das Netzwerk latency hat folgendes Format (Zahlen sind Millisekunden):

Netzwerklatenzformat:

  • gprs: GPRS verwendet einen Latenzbereich von mindestens 150 und maximal 550.
  • edge: EDGE/EGPRS verwendet einen 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.

Verwenden Sie -netdelay, um die Latenz beim Start des Emulators festzulegen Emulator-Option mit einem Unterstützter Wert für latency, wie im vorherigen Abschnitt zur Netzwerklatenz aufgeführt Format angezeigt. Hier einige Beispiele:

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 netdelay mit einem unterstützten latency-Wert aus dem vor der Liste Netzwerklatenzformat.

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 die Rate ändern, während die App im Emulator ausgeführt wird.

Das Netzwerk speed hat eines der folgenden Formate (Die Zahlen sind Kilobit/s):

Format der Netzwerkgeschwindigkeit:

  • gsm: GSM/CSD mit einer Geschwindigkeit von 14,4 nach oben und 14,4 unten.
  • hscsd: HSCSD mit einer Geschwindigkeit von 14,4 nach oben und 43,2 unten.
  • gprs: GPRS mit einer Geschwindigkeit von 40,0 nach oben und 80,0 unten.
  • edge: EDGE/EGPRS mit einer Geschwindigkeit von 118,4 nach oben und 236,8 %.
  • umts: UMTS/3G mit einer Geschwindigkeit von 128, 0 bzw.1920 Abwärtsgeschwindigkeit.
  • hsdpa: HSDPA mit einer Geschwindigkeit von 348,0 hoch und 14.400 % bei Abwärtsgeschwindigkeit.
  • lte: LTE mit einer Geschwindigkeit von 58.000 oben und 173.000 Downloads
  • evdo: EVDO mit einer Geschwindigkeit von 75.000 nach oben und 280.000 Abwärtsgeschwindigkeiten.
  • full: Unbegrenzte Geschwindigkeit, hängt aber von der Verbindungsgeschwindigkeit deines Computer.
  • num: Legt eine genaue Rate in Kilobit/s fest, die für den Upload verwendet wird und herunterladen.
  • up:down: Legt die genauen Raten in Kilobit/s fest für separat hochladen und herunterladen.

Verwende -netspeed, um die Netzwerkgeschwindigkeit beim Start des Emulators festzulegen Emulator-Option mit einem unterstützter Wert für speed, wie im vorherigen Netzwerkgeschwindigkeitsformat Liste. Hier einige Beispiele:

emulator -netspeed gsm @Pixel_API_26
emulator -netspeed 14.4,80 @Pixel_API_26

Wenn du die Netzwerkgeschwindigkeit ändern möchtest, während der Emulator ausgeführt wird, stelle eine Verbindung zur Konsole her und verwenden Sie den Befehl network speed mit einem unterstützten speed-Wert aus der obigen Liste Netzwerkgeschwindigkeitsformat.

network speed 14.4 80
network capture {start|stop} file Sendet Pakete an eine Datei. In der folgenden Liste werden die Parameter und Parameterwerte verwenden: <ph type="x-smartling-placeholder">
    </ph>
  • start file: Beginnt das Senden von Paketen an die angegebene Datei.
  • stop file: Beendet das Senden von Paketen an die angegebene Datei.
Telefonieemulation Beschreibung
Der Android Emulator enthält eigene GSM- und CDMA-emulierte Modems, mit denen Sie Telefonie simulieren können Funktionen im Emulator. Mit GSM können Sie beispielsweise eingehende Anrufe simulieren und und Datenverbindungen beenden. Mit CDMA geben Sie eine Abonnementquelle und die bevorzugte Roaming-Liste. Das Android-System verarbeitet simulierte Anrufe genau wie tatsächliche Anrufe. Die Emulator unterstützt Anrufe nicht.
gsm {call|accept|cancel|busy} phonenumber Die gsm-Parameter sind: <ph type="x-smartling-placeholder">
    </ph>
  • call: Simuliert einen eingehenden Anruf von phonenumber.
  • accept: Nimmt einen eingehenden Anruf von phonenumber an und ändert den Aufrufstatus in active. Sie können Anrufstatus nur dann in active ändern, wenn Der aktuelle Status ist waiting oder held.
  • cancel: Beendet einen eingehenden oder ausgehenden Anruf bei phonenumber anrufen.
  • busy: Schließt einen ausgehenden Anruf an phonenumber und ändert den Aufrufstatus in busy. Du kannst den Anrufstatus nur in „busy“ ändern, wenn sein aktueller Status so lautet: waiting.
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-Stimme. Verbindung: <ph type="x-smartling-placeholder">
    </ph>
  • unregistered: Kein Netzwerk verfügbar.
  • home: im lokalen Netzwerk, kein Roaming.
  • roaming: im Roaming-Netzwerk.
  • searching: Netzwerke werden gesucht.
  • denied: Nur Notrufe.
  • off: Entspricht unregistered.
  • on: Entspricht home.
gsm hold Ändert den Status eines Aufrufs in hold. Sie können einen Aufruf von hold nur dann, wenn der aktuelle Status active ist oder waiting
gsm list Listet alle ein- und ausgehenden Anrufe und deren Status auf
gsm status Meldet den aktuellen GSM-Sprach-/Datenstatus. Werte sind diejenigen, für die Befehle voice und data beschrieben.
gsm signal {rssi|ber} Ändert die gemeldete Signalstärke (rssi) und Bitfehlerrate (Ber) auf den nächsten 15 Tagen Sekunden nach dem Update. In der folgenden Liste werden die Parameter und ihre Werte beschrieben: <ph type="x-smartling-placeholder">
    </ph>
  • Der rssi-Bereich liegt zwischen 0 und 31 und 99 für unbekannt.
  • Der ber-Bereich liegt zwischen 0 und 7 und 99 für unbekannt.
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 ist eine netzwerkbasierte Zulassungsliste, die Folgendes enthält: Abonnenten des CDMA-Anbieters und ihre Werte: <ph type="x-smartling-placeholder">
    </ph>
  • nv: Liest das Abo aus dem nichtflüchtigen RAM.
  • ruim: Liest das Abo aus dem Removable User Identity Module (RUIM).
cdma prl_version version Speichert die aktuelle Version der bevorzugten Roaming-Liste (PRL). Die Versionsnummer ist für die PRL. Datenbank, die Informationen enthält, die während der Systemauswahl und -erfassung verwendet werden.
Sensoren im Emulator verwalten Beschreibung
Diese Befehle beziehen sich welche Sensoren im AVD verfügbar sind. Neben dem Befehl sensor die Einstellungen im Emulator auf dem Bildschirm Virtuelle Sensoren in die Tabs Beschleunigungsmesser und Zusätzliche Sensoren.
sensor status Listet alle Sensoren und deren Status auf. Hier 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:
sensor get acceleration
acceleration = 2.23517e-07:9.77631:0.812348

Die durch Doppelpunkt(:) getrennten acceleration-Werte beziehen sich auf die x-, y- und z-Werte Koordinaten für die virtuellen Sensoren.

sensor set sensor-name value-x:value-y:value-z Legt die Werte für sensor-name fest. Im folgenden Beispiel wird der Parameter Beschleunigungssensor auf die x-, y- und z-Werte durch Doppelpunkte getrennt.
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: <ph type="x-smartling-placeholder">
    </ph>
  • sender-phone-number: enthält einen beliebigen numerischen String.
  • textmessage: Die SMS.

Im folgenden Beispiel wird die Nachricht „Hallo“ gesendet. an die Telefonnummer 4085555555:

sms send 4085555555 hi there

Die Konsole leitet die SMS-Nachricht an das Android-Framework weiter, das sie anschließend an einen App im Emulator, der SMS verarbeitet, z. B. die Messages App. Wenn Sie 10 Zahlen übergeben, in der App als Telefonnummer formatiert. Längere oder kürzere numerische Zeichenfolgen zeigen die Art und Weise an, die Sie gesendet haben.

Fingerabdrucksimulation Beschreibung
finger touch fingerprint-id Simuliert einen Finger, der den Sensor berührt.
finger remove Simuliert die Fingerentfernung.

Anweisungen zur Verwendung dieser Befehle finden Sie im folgenden Abschnitt zu Fingerabdrucksimulation und -validierung testen.

Fingerabdrucksimulation und -validierung

Abbildung 1: Bildschirm zur Authentifizierung per Fingerabdruck.

Verwenden Sie den Befehl finger, um die Fingerabdruckauthentifizierung für Ihr 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:

  1. Wenn Sie noch keine Fingerabdruck-ID haben, registrieren Sie einen neuen Fingerabdruck im Emulator indem Sie Einstellungen > Sicherheit > Fingerabdruck unter Einhaltung der Registrierungsanleitung.
  2. Richte deine App so ein, dass sie akzeptiert wird Fingerabdruck Authentifizierung. Nach dieser Einrichtung wird auf deinem Gerät der Fingerabdruck angezeigt Authentifizierungsbildschirm.
  3. Während Ihre App den Authentifizierungsbildschirm für den Fingerabdruck anzeigt, rufen Sie die Konsole auf und Geben Sie den Befehl finger touch und die von Ihnen erstellte Fingerabdruck-ID ein. Dieses eine Fingerberührung simuliert.
  4. Geben Sie dann den Befehl finger remove ein, um die Fingerentfernung zu simulieren.

    Ihre App sollte so reagieren, als hätte ein Nutzer den Finger auf dem Gerät Fingerabdrucksensor verwenden.