Ogni dispositivo virtuale in esecuzione fornisce una console che ti consente di eseguire query e controllare l'ambiente del dispositivo emulato. Ad esempio, puoi utilizzare la console per gestire il reindirizzamento delle porte, le caratteristiche della rete e gli eventi di telefonia mentre l'app è in esecuzione sull'emulatore.
I seguenti comandi richiedono che sia già in esecuzione un emulatore. Per ulteriori informazioni sull'esecuzione di un emulatore, vedi Eseguire app sull'emulatore Android e Avviare l'emulatore dalla riga di comando.
Avviare e interrompere una sessione della console
Per accedere alla console e inserire i comandi da una finestra del terminale, utilizza telnet per
connetterti alla porta della console e fornire il token di autenticazione. Ogni volta che la console mostra
OK, è pronta ad accettare i comandi. Non esiste un prompt tipico.
Per connetterti alla console di un dispositivo virtuale in esecuzione:
- Apri una finestra del terminale e inserisci il seguente comando:
- Dopo che la console visualizza
OK, inserisci il comandoauth auth_token. - Una volta connesso alla console, inserisci i comandi della console.
- Per uscire dalla sessione della console, inserisci
quitoexit.
telnet localhost console-port
Il titolo della finestra dell'emulatore elenca il numero di porta della console quando viene eseguito in una finestra separata, ma
non quando viene eseguito in una finestra degli strumenti. Ad esempio, il titolo della finestra di un emulatore che utilizza la porta della console 5554
potrebbe essere Pixel8_API_34:5554. Inoltre, il comando adb devices stampa un elenco dei dispositivi virtuali in esecuzione e dei relativi numeri di porta della console. Per maggiori informazioni, consulta la pagina
Query per i dispositivi.
Nota:l'emulatore è in attesa di connessioni sulle porte da 5554 a 5585
e accetta connessioni solo da localhost.
Prima di poter inserire i comandi della console, la console dell'emulatore
richiede l'autenticazione. auth_token deve
corrispondere ai contenuti del file .emulator_console_auth_token nella tua directory home.
Se il file non esiste, il comando telnet localhost console-port
crea il file, che contiene un token di autenticazione generato in modo casuale. Per disattivare
l'autenticazione, elimina il token dal
file .emulator_console_auth_token o crea un file vuoto se non esiste.
Inserisci help, help command o help-verbose
per visualizzare un elenco di comandi della console e scoprire di più su comandi specifici.
Ecco una sessione di esempio:
$ 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.
Riferimento ai comandi dell'emulatore
La tabella seguente descrive i comandi della console dell'emulatore con i relativi parametri e valori:
Tabella 1. Comandi della console dell'emulatore
| Comandi generici | Descrizione |
|---|---|
avd {stop|start|status|name}
|
Esegue query, controlla e gestisce il dispositivo virtuale nel seguente modo:
|
avd snapshot {list|save name|load name|delete
name}
|
Salva e ripristina lo stato del dispositivo negli snapshot, come segue:
L'esempio seguente salva uno snapshot con il nome
avd snapshot save firstactivitysnapshot |
fold
|
Chiude il dispositivo per visualizzare la configurazione dello schermo più piccolo, se il dispositivo è pieghevole e attualmente aperto. |
unfold
|
Apre il dispositivo per visualizzare la configurazione dello schermo più grande, se il dispositivo è pieghevole e attualmente chiuso. |
kill
|
Termina il dispositivo virtuale. |
ping
|
Verifica se il dispositivo virtuale è in esecuzione. |
rotate
|
Ruota l'AVD in senso antiorario con incrementi di 45 gradi. |
| Arresto anomalo dell'emulatore | Descrizione |
crash
|
L'emulatore si arresta in modo anomalo durante l'esecuzione dell'app. |
crash-on-exit |
L'emulatore va in crash quando l'app viene chiusa. |
| Tag di debug | Descrizione |
debug tags ...
|
Attiva o disattiva i messaggi di debug di parti specifiche dell'emulatore.
Il parametro tags deve essere un valore dell'elenco dei tag di debug visualizzato quando
esegui
L'esempio riportato di seguito attiva il tag debug radio |
| Reindirizzamento delle porte | Descrizione |
redir list
|
Elenca il reindirizzamento della porta corrente. |
redir add protocol:host-port:guest-port
|
Aggiunge un nuovo reindirizzamento della porta, come segue:
|
redir del protocol:host-port
|
Elimina un reindirizzamento della porta.
|
| Posizione geografica | Descrizione |
|
Imposta la posizione geografica segnalata alle app in esecuzione all'interno di un emulatore inviando una correzione GPS all'emulatore. Puoi emettere uno dei seguenti comandi |
|
geo fix longitude latitude [altitude] [satellites] [velocity]
|
Invia una semplice correzione GPS all'emulatore.
Specifica longitude e latitude
in gradi decimali. Utilizza un numero da 1 a 12 per specificare il numero di
satellites da utilizzare per determinare la posizione e specifica
altitude in metri e
velocity in nodi.
|
geo nmea sentence
|
Invia una frase NMEA 0183 al dispositivo emulato come se fosse stata inviata da un modem GPS emulato. Inizia sentence con "$GP".
Al momento sono supportate solo le frasi "$GPGGA" e "$GPRCM". L'esempio seguente
è una frase GPGGA (Global Positioning System Fix Data) che recupera
l'ora, la posizione e i dati di correzione per un ricevitore GPS:
geo nmea $GPGGA ,hhmmss.ss,llll.ll,a,yyyyy.yy,a,x,xx,x.x,x.x,M,x.x,M,x.x,xxxx |
| Eventi hardware falsi | Descrizione |
event types
|
Elenca tutti i tipi di eventi falsi. Per gli eventi che hanno codici, il numero di codici è elencato tra
parentesi a destra.
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 ...]
|
Invia uno o più tipi di eventi falsi. |
event codes type
|
Elenca i codici evento per il tipo di evento simulato specificato. |
event send type[:code]:[value] [...]
|
Invia uno o più eventi falsi con codici e valori di codice facoltativi.
Per scoprire esattamente quale evento inviare, puoi utilizzare il comando Questi sono gli eventi generati quando premi il tasto di accensione:
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 per keydown e keyup:
event send EV_KEY:KEY_POWER:0
OK
event send EV_KEY:KEY_POWER:1
OK
|
event text message
|
Invia una stringa di caratteri che simulano la pressione dei tasti. Il messaggio deve essere una stringa UTF-8. I post Unicode vengono mappati al contrario in base alla tastiera del dispositivo corrente e i caratteri non supportati vengono eliminati automaticamente. |
| Controlli dello stato di alimentazione | Descrizione |
power display
|
Mostra lo stato della batteria e del caricabatterie. |
power ac {on|off}
|
Imposta lo stato di ricarica CA su on o off.
|
power status {unknown|charging|discharging|not-charging|full}
|
Modifica lo stato della batteria come specificato. |
power present {true|false}
|
Imposta lo stato di presenza della batteria. |
power health {unknown|good|overheat|dead|overvoltage|failure}
|
Imposta lo stato di integrità della batteria. |
power capacity percent
|
Imposta lo stato della capacità della batteria rimanente come percentuale da 0 a 100. |
| Stato della connessione di rete (solo Ethernet e rete cellulare) |
Descrizione |
network status
|
Controlla lo stato della rete e le caratteristiche attuali di ritardo e velocità. |
network delay latency
|
Modifica la latenza di rete emulata. L'emulatore ti consente di simulare vari livelli di latenza di rete in modo da poter testare la tua app in un ambiente più tipico delle condizioni di esecuzione effettive. Puoi impostare un livello o un intervallo di latenza all'avvio dell'emulatore oppure puoi utilizzare la console per modificare la latenza mentre l'app è in esecuzione nell'emulatore. Il formato di network latency è uno dei seguenti (i numeri sono millisecondi): Formato della latenza di rete:
Per impostare la latenza all'avvio dell'emulatore, utilizza l'opzione dell'emulatore emulator -netdelay gprs emulator -netdelay 40,100 Per apportare modifiche al ritardo di rete durante l'esecuzione dell'emulatore, connettiti alla console e utilizza
il comando network delay gprs network delay 40 100 |
network speed speed |
L'emulatore consente di simulare varie velocità di trasferimento di rete.
Puoi impostare una velocità o un intervallo di trasferimento all'avvio dell'emulatore oppure utilizzare la console per modificare la velocità mentre l'app è in esecuzione nell'emulatore. Il formato della rete Formato della velocità di rete:
Per impostare la velocità di rete all'avvio dell'emulatore, utilizza l' emulator -netspeed gsm @Pixel_API_26 emulator -netspeed 14.4,80 @Pixel_API_26 Per apportare modifiche alla velocità di rete mentre l'emulatore è in esecuzione, connettiti alla console
e utilizza il comando network speed 14.4 80 |
network capture {start|stop} file |
Invia pacchetti a un file. Il seguente elenco descrive i parametri e
i valori dei parametri:
|
| Emulazione della telefonia | Descrizione |
| L'emulatore Android include modem GSM e CDMA emulati che ti consentono di simulare le funzioni di telefonia nell'emulatore. Ad esempio, con GSM puoi simulare chiamate telefoniche in entrata e stabilire e terminare le connessioni dati. Con CDMA, fornisci un'origine dell'abbonamento e l'elenco di roaming preferito. Il sistema Android gestisce le chiamate simulate esattamente come le chiamate reali. L'emulatore non supporta l'audio delle chiamate. | |
gsm {call|accept|cancel|busy} phonenumber
|
I parametri gsm sono i seguenti:
|
gsm {data|voice} state
|
Il comando data state modifica lo stato della connessione dati GPRS,
mentre il comando data voice state modifica lo stato della connessione
vocale GPRS, come segue:
|
gsm hold
|
Modifica lo stato di una chiamata in hold. Puoi modificare lo stato di una
chiamata in hold solo quando il suo stato attuale è active o
waiting.
|
gsm list
|
Elenca tutte le chiamate in entrata e in uscita e i relativi stati. |
gsm status
|
Indica lo stato attuale della voce/dati GSM. I valori sono quelli
descritti per i comandi voice e data.
|
gsm signal {rssi|ber}
|
Modifica la potenza del segnale (rssi) e il tasso di errore di bit (ber) riportati nei successivi 15
secondi di aggiornamento. Il seguente elenco descrive i parametri e i relativi valori:
|
gsm signal-profile num
|
Imposta il profilo dell'intensità del segnale.
num è un numero compreso tra 0 e 4.
|
cdma ssource source
|
Imposta l'origine dell'abbonamento CDMA corrente, dove
source è una lista consentita basata sulla rete che contiene
gli abbonati dell'operatore CDMA e i relativi valori, come segue:
|
cdma prl_version version
|
Esegue il dump della versione corrente dell'elenco di roaming preferito (PRL). Il numero di versione è per il database PRL che contiene le informazioni utilizzate durante la procedura di selezione e acquisizione del sistema. |
| Gestire i sensori sull'emulatore | Descrizione |
Questi comandi si riferiscono a
quali sensori sono disponibili nell'AVD. Oltre a utilizzare il comando sensor, puoi
visualizzare e regolare le impostazioni nell'emulatore nella schermata Sensori virtuali nelle schede
Accelerometro e Sensori aggiuntivi.
|
|
sensor status |
Elenca tutti i sensori e il loro stato. Di seguito è riportato un output di esempio del
comando sensor status:
|
sensor get sensor-name
|
Recupera le impostazioni per sensor-name. L'esempio seguente ottiene il
valore per il sensore di accelerazione:
sensor get acceleration acceleration = 2.23517e-07:9.77631:0.812348
I valori |
sensor set sensor-name value-x:value-y:value-z
|
Imposta i valori per sensor-name. L'esempio seguente imposta il
sensore di accelerazione sui valori x, y e z
separati dai due punti.
sensor set acceleration 2.23517e-07:9.77631:0.812348 |
| Emulazione SMS | Descrizione |
sms send sender-phone-number textmessage
|
Genera un SMS in entrata emulato. Il seguente elenco descrive i parametri e
i relativi valori:
L'esempio seguente invia il messaggio "hi there" al numero di telefono 4085555555: sms send 4085555555 hi there La console inoltra il messaggio SMS al framework Android, che lo passa a un'app sull'emulatore che gestisce gli SMS, ad esempio l'app Messaggi. Se passi 10 numeri, l'app li formatta come numero di telefono. Le stringhe numeriche più lunghe o più corte vengono visualizzate così come le hai inviate.
|
| Simulazione di impronte | Descrizione |
finger touch fingerprint-id
|
Simula il tocco di un dito sul sensore. |
finger remove
|
Simula la rimozione del dito.
Per istruzioni su come utilizzare questi comandi, consulta la sezione seguente relativa alla simulazione e alla convalida delle impronte. |
Simulazione e convalida dell'impronta
Figura 1. Schermata di autenticazione tramite impronta.
Utilizza il comando finger per simulare e convalidare l'autenticazione con l'impronta per la tua app. Devi disporre di SDK Tools 24.3 o versioni successive e Android 6.0 (livello API 23) o versioni successive.
Per simulare e convalidare l'autenticazione con l'impronta, segui questi passaggi:
- Se non hai ancora un ID impronta, registrane una nuova nell'emulatore selezionando Impostazioni > Sicurezza > Impronta e seguendo le istruzioni per la registrazione.
- Configura la tua app per accettare l'autenticazione tramite impronta. Dopo aver eseguito questa configurazione, sul dispositivo viene visualizzata la schermata di autenticazione con l'impronta.
- Mentre l'app mostra la schermata di autenticazione con l'impronta, vai alla console e
inserisci il comando
finger touche l'ID impronta che hai creato. In questo modo viene simulato il tocco di un dito. - Quindi, inserisci il comando
finger removeper simulare la rimozione del dito.La tua app deve rispondere come se un utente avesse toccato e poi rimosso il dito dal sensore di impronte digitali.