Ogni dispositivo virtuale in esecuzione fornisce una console che ti consente di eseguire query sull'ambiente del dispositivo emulato e di controllarlo. Ad esempio, puoi utilizzare la console per gestire il reindirizzamento delle porte, le caratteristiche di rete e gli eventi di telefonia mentre la tua app è in esecuzione sull'emulatore.
I seguenti comandi richiedono che sia già in esecuzione un emulatore. Per maggiori informazioni sull'esecuzione di un emulatore, consulta Esecuzione di app sull'emulatore Android e Avvia 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, usa telnet
per connetterti alla porta della console e fornisci il tuo token di autenticazione. Ogni volta che la console mostra OK, è pronta ad accettare 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:
- Quando nella console viene visualizzato
OK
, inserisci il comandoauth auth_token
. - Dopo aver effettuato la connessione alla console, inserisci console command.
- Per uscire dalla sessione della console, inserisci
quit
oexit
.
telnet localhost console-port
Il titolo della finestra dell'emulatore elenca il numero di porta della console quando l'esecuzione avviene in una finestra separata, ma non quando viene eseguita in una finestra degli strumenti. Ad esempio, il titolo della finestra per un emulatore che utilizza la porta della console 5554 potrebbe essere Nexus_5X_API_23:5554
. Inoltre, il comando adb devices
stampa un elenco dei dispositivi virtuali in esecuzione e i relativi numeri di porta della console. Per maggiori informazioni, consulta
Query per i dispositivi.
Nota: l'emulatore rimane in ascolto delle connessioni sulle porte da 5554 a 5585 e accetta solo connessioni 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 directory home.
Se il file non esiste, il comando telnet localhost console-port
lo crea, contenente un token di autenticazione generato in modo casuale. Per disabilitare 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 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.
Riferimento per il comando Emulator
La tabella seguente descrive i comandi della console dell'emulatore con i relativi parametri e valori:
Comandi generici | Descrizione |
---|---|
avd {stop|start|status|name}
|
Esegue query, controlla e gestisce il dispositivo virtuale come segue:
|
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
|
Consente di piegare il dispositivo per visualizzare la configurazione dello schermo più piccolo, se è pieghevole e attualmente aperto. |
unfold
|
Consente di aprire il dispositivo per visualizzarne la configurazione dello schermo più grande, se il dispositivo è pieghevole e attualmente chiuso. |
kill
|
Termina il dispositivo virtuale. |
ping
|
Controlla se il dispositivo virtuale è in esecuzione. |
rotate
|
Ruota il video di AVD in senso antiorario con incrementi di 45 gradi. |
Arresto anomalo dell'emulatore | Descrizione |
crash
|
Arresto anomalo dell'emulatore durante l'esecuzione dell'app. |
crash-on-exit |
Arresto anomalo dell'emulatore alla chiusura dell'app. |
Tag di debug | Descrizione |
debug tags ...
|
Attiva o disattiva i messaggi di debug da parti specifiche dell'emulatore.
Il parametro tags deve essere un valore dell'elenco dei tag di debug che viene visualizzato quando esegui
L'esempio seguente attiva il tag debug radio |
Reindirizzamento porte | Descrizione |
redir list
|
Elenca il reindirizzamento delle porte corrente. |
redir add protocol:host-port:guest-port
|
Aggiunge un nuovo reindirizzamento alle porte, come segue:
|
redir del protocol:host-port
|
Elimina il reindirizzamento delle porte.
|
Posizione geografica | Descrizione |
Imposta la posizione geografica segnalata alle app in esecuzione all'interno di un emulatore inviando una correzione GPS all'emulatore. Puoi inviare uno dei seguenti comandi |
|
geo fix longitude latitude [altitude] [satellites] [velocity]
|
Invia all'emulatore una semplice correzione GPS.
Specifica longitude e latitude
in gradi decimali. Utilizza un numero compreso tra 1 e 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 stato inviato 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 Placeing System Fix Data) che ottiene l'ora, la posizione e i dati corretti 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 dispongono di codici, il numero di codici è riportato
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 falso 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 usare 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 00000000Ad esempio, per simulare una pressione prolungata del tasto di accensione, invia due eventi EV_KEY per tasto premuto e tasto di accensione:
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 tramite alimentazione 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à rimanente della batteria come percentuale da 0 a 100. |
Stato della connessione di rete | Descrizione |
network status
|
Consente di verificare lo stato della rete, il ritardo attuale e le caratteristiche di velocità. |
network delay latency
|
Modifica la latenza di rete emulata. L'emulatore ti consente di simulare diversi 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 della rete latency è uno dei seguenti (i numeri sono in millisecondi): Formato per la latenza di rete:
Per impostare la latenza all'avvio dell'emulatore, utilizza l'opzione emulatore emulator -netdelay gprs emulator -netdelay 40,100 Per apportare modifiche al ritardo di rete mentre l'emulatore è in esecuzione, connettiti alla console e utilizza il comando network delay gprs network delay 40 100 |
network speed speed |
L'emulatore ti consente di simulare diverse velocità di trasferimento della rete.
Puoi impostare una velocità o un intervallo di trasferimento all'avvio dell'emulatore oppure puoi utilizzare la console per cambiarla quando l'app è in esecuzione nell'emulatore. Il formato della rete Formato velocità di rete:
Per impostare la velocità di rete all'avvio dell'emulatore, utilizza l'opzione emulatore 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. Nell'elenco seguente vengono descritti i parametri e i relativi valori:
|
Emulazione telefonia | Descrizione |
L'emulatore Android include i propri modem emulati GSM e CDMA che consentono di simulare le funzioni di telefonia nell'emulatore. Ad esempio, con la GSM puoi simulare le telefonate in entrata e stabilire e terminare le connessioni dati. Con CDMA, fornisci un'origine abbonamento e l'elenco di roaming preferito. Il sistema Android gestisce le chiamate simulate esattamente come le chiamate effettive. 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 cambia lo stato della connessione vocale GPRS, nel seguente modo:
|
gsm hold
|
Modifica lo stato di una chiamata in hold . Puoi modificare uno
stato di 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
|
Consente di segnalare lo stato corrente dei dati/vocali GSM. I valori sono quelli descritti per i comandi voice e data .
|
gsm signal {rssi|ber}
|
Modifica l'intensità del segnale (rssi) e il tasso di errore di bit (ber) segnalati ai successivi 15 secondi di aggiornamento. Nell'elenco seguente sono descritti i parametri e i relativi valori:
|
gsm signal-profile num
|
Imposta il profilo di intensità del segnale.
num è un numero compreso tra 0 e 4.
|
cdma ssource source
|
Imposta l'origine abbonamento CDMA corrente, dove
source è una lista consentita basata su 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 è relativo al database PRL, che contiene le informazioni utilizzate durante il processo di selezione e acquisizione del sistema. |
Gestisci i sensori nell'emulatore | Descrizione |
Questi comandi riguardano
i sensori disponibili nella AVD. Oltre a utilizzare il comando sensor , puoi vedere e modificare le impostazioni nell'emulatore nella schermata Sensori virtuali delle schede Accelerometro e Sensori aggiuntivi.
|
|
sensor status |
Elenca tutti i sensori e il relativo stato. Di seguito è riportato un esempio di output per il comando sensor status :
|
sensor get sensor-name
|
Recupera le impostazioni per sensor-name . L'esempio seguente restituisce il valore del 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 da 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 arrivo emulato. Il seguente elenco descrive i parametri e
i relativi valori:
Nell'esempio seguente viene inviato il messaggio "Ciao" al numero di telefono 4085555555: sms send 4085555555 hi there La console inoltra l'SMS al framework Android, che lo passa a un'app nell'emulatore che gestisce gli SMS, ad esempio l'app Messaggi. Se trasmetti 10 numeri, l'app lo formatta come numero di telefono. Le stringhe numeriche più lunghe o più corte mostrano il modo in cui le hai inviate.
|
Simulazione dell'impronta | Descrizione |
finger touch fingerprint-id
|
Simula il tocco di un dito sul sensore. |
finger remove
|
Simula la rimozione delle dita.
Per istruzioni sull'utilizzo di questi comandi, consulta la sezione seguente relativa alla simulazione e convalida delle impronte. |
Simulazione e convalida dell'impronta
Utilizza il comando finger
per simulare e convalidare l'autenticazione tramite impronta digitale per la tua app. Sono necessari SDK Tools 24.3 o versioni successive e Android 6.0 (livello API 23) o versioni successive.
Per simulare e convalidare l'autenticazione tramite impronta digitale, procedi nel seguente modo:
- Se non hai ancora un ID impronta, registra una nuova impronta nell'emulatore selezionando Impostazioni > Sicurezza > Impronta e seguendo le istruzioni per la registrazione.
- Configura l'app in modo che accetti l'autenticazione tramite impronta. Dopo aver eseguito questa configurazione, sul dispositivo viene visualizzata la schermata di autenticazione dell'impronta.
- Mentre l'app visualizza la schermata di autenticazione tramite impronta, vai alla console e inserisci il comando
finger touch
e l'ID impronta che hai creato. Simula il tocco di un dito. - Quindi, inserisci il comando
finger remove
per simulare la rimozione del dito.L'app dovrebbe rispondere come se un utente avesse toccato e poi rimosso il dito dal sensore di impronte digitali.