Cada dispositivo virtual en ejecución cuenta con una consola que te permite consultar y controlar el entorno del dispositivo emulado. Por ejemplo, puedes usar la consola para administrar el redireccionamiento de puertos, las características de la red y los eventos de telefonía mientras tu app se ejecuta en el emulador.
Para usar los siguientes comandos, es necesario tener un emulador en ejecución. Si deseas obtener más información sobre cómo ejecutar un emulador, consulta Cómo ejecutar apps en Android Emulator y Cómo iniciar el emulador desde la línea de comandos.
Cómo iniciar y detener una sesión de la consola
Si quieres acceder a la consola y escribir comandos, desde una ventana de terminal, usa telnet
para conectarte al puerto de consola y proporciona tu token de autenticación. Cada vez que la consola muestre OK, estará lista para aceptar comandos. No hay un mensaje típico.
Para conectarte a la consola de un dispositivo virtual en ejecución:
- Abre una ventana de terminal e ingresa el siguiente comando:
- Después de que la consola muestre
OK
, ingresa el comandoauth auth_token
. - Después de conectarte, ingresa los comandos de la consola.
- Para salir de la sesión de la consola, ingresa
quit
oexit
.
telnet localhost console-port
El título de la ventana del emulador muestra el número de puerto de la consola cuando se ejecuta en una ventana por separado, pero no cuando se ejecuta en una ventana de herramientas. Por ejemplo, el título de la ventana para un emulador que usa el puerto de consola 5554 podría ser Pixel8_API_34:5554
. Además, el comando adb devices
imprime una lista de dispositivos virtuales en ejecución y sus números de puerto de consola. Para obtener más información, consulta Cómo realizar consultas de dispositivos.
Nota: El emulador detecta las conexiones en los puertos 5554 a 5585 y solo acepta conexiones de localhost
.
Antes de poder ingresar los comandos de la consola, la consola del emulador requiere autenticación. auth_token
debe coincidir con el contenido del archivo .emulator_console_auth_token
en tu directorio principal.
Si no existe ese archivo, el comando telnet localhost console-port
lo creará y contendrá un token de autenticación generado de manera aleatoria. Para inhabilitar la autenticación, borra el token del archivo .emulator_console_auth_token
o crea un archivo vacío si no existe.
Ingresa help
, help command
o help-verbose
para ver una lista de comandos de la consola y obtener información sobre comandos específicos.
La siguiente es una sesión de ejemplo:
$ 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.
Referencia de comandos del emulador
En la siguiente tabla, se describen los comandos de la consola del emulador con sus parámetros y valores:
Tabla 1: Comandos de la consola del emulador
Comandos generales | Descripción |
---|---|
avd {stop|start|status|name}
|
Consulta, controla y administra el dispositivo virtual de la siguiente manera:
|
avd snapshot {list|save name|load name|delete
name}
|
Guarda y restablece el estado del dispositivo en las instantáneas como se indica a continuación:
En el siguiente ejemplo, se guarda una instantánea con el nombre avd snapshot save firstactivitysnapshot |
fold
|
Pliega el dispositivo para mostrar la configuración de pantalla más pequeña (si el dispositivo es plegable y está desplegado). |
unfold
|
Despliega el dispositivo para mostrar la configuración de pantalla más grande (si el dispositivo es plegable y está plegado). |
kill
|
Finaliza el dispositivo virtual. |
ping
|
Comprueba si se está ejecutando el dispositivo virtual. |
rotate
|
Gira el AVD en sentido antihorario en incrementos de 45 grados. |
Falla del emulador | Descripción |
crash
|
Hace que el emulador falle durante la ejecución de la app. |
crash-on-exit |
Hace que el emulador falle al salir de la app. |
Etiquetas de depuración | Descripción |
debug tags ...
|
Habilita o inhabilita los mensajes de depuración de partes específicas del emulador.
El parámetro tags debe ser un valor de la lista de etiquetas de depuración que aparece cuando ejecutas
En el siguiente ejemplo, se habilita la etiqueta debug radio |
Redirección de puerto | Descripción |
redir list
|
Enumera el redireccionamiento del puerto actual. |
redir add protocol:host-port:guest-port
|
Agrega un nuevo redireccionamiento de puertos como se indica a continuación:
|
redir del protocol:host-port
|
Borra un redireccionamiento del puerto.
|
Ubicación geográfica | Descripción |
Establece la ubicación geográfica informada en las apps que se ejecutan dentro de un emulador enviando datos del GPS al emulador. Puedes emitir uno de los siguientes comandos |
|
geo fix longitude latitude [altitude] [satellites] [velocity]
|
Envía una vez datos del GPS al emulador.
Especifica longitude y latitude en grados decimales. Usa un número del 1 al 12 para especificar la cantidad de satellites que se usarán para determinar la posición y especifica altitude en metros y velocity en nudos.
|
geo nmea sentence
|
Envía una frase de NMEA 0183 al dispositivo emulado, como si se hubiera enviado desde un módem de GPS emulado. Comienza sentence con '$GP'.
Por el momento, solo se admiten las frases '$GPGGA' y '$GPRCM'. En el siguiente ejemplo, se incluye una frase de GPGGA (datos fijos de sistema de posicionamiento global) que obtiene los datos de hora, posición y corrección de un receptor de 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 |
Eventos de hardware falsos | Descripción |
event types
|
Enumera todos los tipos de eventos falsos. Para los eventos que tienen códigos, la cantidad de códigos se detalla entre paréntesis a la derecha.
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 ...]
|
Envía uno o más tipos de eventos falsos. |
event codes type
|
Detalla los códigos de evento para el tipo de evento falso especificado. |
event send type[:code]:[value] [...]
|
Envía uno o más eventos falsos con códigos y valores de código opcionales.
Para descubrir exactamente qué evento enviar, puedes usar el comando Estos son los eventos que se generan cuando presionas el botón de encendido: 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 00000000Por ejemplo, para simular la acción de mantener presionado el botón de encendido, envía dos eventos EV_KEY de keydown y keyup:
event send EV_KEY:KEY_POWER:0 OK event send EV_KEY:KEY_POWER:1 OK |
event text message
|
Envía una cadena de caracteres que simulan pulsaciones de teclas. El mensaje debe ser una string UTF-8. Las publicaciones de Unicode se asignan al revés, según el teclado del dispositivo actual, y los caracteres no compatibles se descartan sin emitir sonido. |
Controles de estado de encendido | Descripción |
power display
|
Muestra el estado de la batería y el cargador. |
power ac {on|off}
|
Establece el estado de carga de CA en on o off .
|
power status {unknown|charging|discharging|not-charging|full}
|
Cambia el estado de la batería según lo especificado. |
power present {true|false}
|
Establece el estado de presencia de la batería. |
power health {unknown|good|overheat|dead|overvoltage|failure}
|
Establece el estado de la batería. |
power capacity percent
|
Establece el estado de la capacidad restante de la batería en un porcentaje de 0 a 100. |
Estado de conexión de red | Descripción |
network status
|
Comprueba el estado de la red y las características actuales de demora y velocidad. |
network delay latency
|
Cambia la latencia de red emulada. El emulador te permite simular varios niveles de latencia de red para que puedas probar tu app en un entorno más típico de las condiciones reales de ejecución. Puedes establecer un nivel o rango de latencia al inicio del emulador, o usar la consola para cambiar la latencia mientras se ejecuta la app en el emulador. El formato de latency de red es uno de los siguientes (los números son milisegundos): Formato de latencia de red:
Para establecer la latencia al inicio del emulador, usa la opción del emulador emulator -netdelay gprs emulator -netdelay 40,100 Para realizar cambios en la demora de red mientras el emulador está en funcionamiento, conéctate a la consola y usa el comando network delay gprs network delay 40 100 |
network speed speed |
El emulador te permite simular varias velocidades de transferencia de red.
Puedes establecer una velocidad o rango de transferencia al inicio del emulador, o usar la consola para cambiar la velocidad mientras se ejecuta la app. El formato de Formato de velocidad de red:
Para establecer la velocidad de red al inicio del emulador, usa la opción del emulador emulator -netspeed gsm @Pixel_API_26 emulator -netspeed 14.4,80 @Pixel_API_26 Para realizar cambios en la velocidad de la red mientras el emulador está en funcionamiento, conéctate a la consola y usa el comando network speed 14.4 80 |
network capture {start|stop} file |
Envía paquetes a un archivo. En la siguiente lista, se describen los parámetros y los valores de los parámetros:
|
Emulación de telefonía | Descripción |
Android Emulator incluye sus propios módems GSM y CDMA emulados que te permiten simular funciones de telefonía en el emulador. Por ejemplo, con GSM, puedes simular llamadas telefónicas entrantes y establecer y detener conexiones de datos. Con CDMA, proporcionas una fuente de suscripción y la lista de roaming preferida. El sistema Android controla las llamadas simuladas exactamente como lo haría con las llamadas reales. El emulador no admite audio de la llamada. | |
gsm {call|accept|cancel|busy} phonenumber
|
Los parámetros de gsm son los siguientes:
|
gsm {data|voice} state
|
El comando data state cambia el estado de la conexión de datos GPRS y el comando data voice state cambia el estado de la conexión de voz GPRS de la siguiente manera:
|
gsm hold
|
Cambia el estado de una llamada a hold . Puedes cambiar el estado de una llamada a hold solo cuando el estado actual es active o waiting .
|
gsm list
|
Detalla todas las llamadas entrantes y salientes, así como sus estados. |
gsm status
|
Informa el estado actual de voz/datos de GSM. Los valores son los descritos para los comandos voice y data .
|
gsm signal {rssi|ber}
|
Cambia la intensidad de la señal informada (rssi) y el índice de error de bit (ber) en los próximos 15 segundos de actualización. En la siguiente lista, se describen los parámetros y sus valores:
|
gsm signal-profile num
|
Establece el perfil de intensidad de la señal.
num es un número del 0 al 4.
|
cdma ssource source
|
Establece la fuente de suscripción de CDMA actual, donde source es una lista de entidades permitidas basada en la red que incluye los suscriptores del proveedor de CDMA y sus valores, de la siguiente manera:
|
cdma prl_version version
|
Vuelca la versión actual de la lista de roaming preferida (PRL). El número de versión es para la base de datos de la PRL que contiene información utilizada durante el proceso de selección y adquisición del sistema. |
Administrar sensores en el emulador | Descripción |
Estos comandos se relacionan con los sensores disponibles en el AVD. Además de usar el comando sensor , puedes ver y ajustar la configuración del emulador en la pantalla Virtual sensors de las pestañas Accelerometer y Additional sensors.
|
|
sensor status |
Enumera todos los sensores y sus estados. El siguiente es un ejemplo de resultado para el comando sensor status :
|
sensor get sensor-name
|
Obtiene la configuración de sensor-name . En el siguiente ejemplo, se obtiene el valor del sensor de aceleración:
sensor get acceleration acceleration = 2.23517e-07:9.77631:0.812348
Los valores de |
sensor set sensor-name value-x:value-y:value-z
|
Establece los valores de sensor-name . En el siguiente ejemplo, se establece el sensor de aceleración en los siguientes valores de "x", "y" y "z" separados por dos puntos.
sensor set acceleration 2.23517e-07:9.77631:0.812348 |
Emulación de SMS | Descripción |
sms send sender-phone-number textmessage
|
Genera un SMS entrante emulado. En la siguiente lista, se describen los parámetros y sus valores:
En el siguiente ejemplo, se envía el mensaje "hi there" al número de teléfono 4085555555. sms send 4085555555 hi there La consola reenvía el mensaje SMS al framework de Android, que lo pasa a una app en el emulador compatible con SMS, por ejemplo, la app de Mensajes. Si pasas 10 números, la app les aplica el formato de número de teléfono. Las strings numéricas más largas o más cortas se muestran con la forma en que las enviaste.
|
Simulación de huellas digitales | Descripción |
finger touch fingerprint-id
|
Simula un dedo que toca el sensor. |
finger remove
|
Simula que se levanta un dedo.
Para obtener instrucciones sobre cómo usar estos comandos, consulta la siguiente sección sobre simulación y validación de huellas digitales. |
Simulación y validación de huellas digitales
![](https://developer.android.com/static/studio/images/run/fingerprint_2x.png?authuser=0000&hl=es)
Figura 1: Pantalla de autenticación de huella digital.
Usa el comando finger
para simular y validar la autenticación de huellas digitales para tu app. Necesitas la versión 24.3 o versiones posteriores de las herramientas del SDK y Android 6.0 (nivel de API 23) o versiones posteriores.
Para simular y validar la autenticación de huellas digitales, sigue estos pasos:
- Si aún no tienes un ID de huella digital, inscriobe una nueva huella en el emulador seleccionando Settings > Security > Fingerprint y sigue las instrucciones correspondientes.
- Configura tu app para que acepte la autenticación por huella digital. Después de que realices esta configuración, el dispositivo mostrará la pantalla de autenticación de huellas digitales.
- Mientras tu app muestra esa pantalla, ve a la consola y escribe el comando
finger touch
y el ID de huella digital que creaste. Esto simulará el toque de un dedo. - Luego, ingresa el comando
finger remove
, que simulará la acción de levantar el dedo.La app debe responder como si un usuario tocara el sensor de huellas dactilares y, luego, levantara el dedo.