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 quitoexit.
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 longitudeylatitudeen grados decimales. Usa un número del 1 al 12 para especificar la cantidad desatellitesque se usarán para determinar la posición y especificaaltitudeen metros yvelocityen 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 sentencecon '$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           00000000
      EV_KEYpara 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 onooff. | 
| 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 gsmson los siguientes:
 | 
| gsm {data|voice} state | El comando data statecambia el estado de la conexión de datos GPRS y el comandodata voice statecambia 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 aholdsolo cuando el estado actual esactiveowaiting. | 
| 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 voiceydata. | 
| 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. numes un número del 0 al 4. | 
| cdma ssource source | Establece la fuente de suscripción de CDMA actual, donde sourcees 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
 
    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 touchy 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. 
