Cómo crear y administrar dispositivos virtuales

Un dispositivo virtual de Android (AVD) es una configuración que define las características de un teléfono o una tablet Android, o de un dispositivo Wear OS, Android TV o Automotive OS, que deseas simular en Android Emulator. El Administrador de dispositivos es una herramienta que puedes iniciar desde Android Studio, y te permite crear y administrar AVD.

Para abrir el Administrador de dispositivos nuevo, realiza una de las siguientes acciones:

  • En la pantalla de bienvenida de Android Studio, selecciona More Actions > Virtual Device Manager.

Cómo abrir el Administrador de dispositivos desde la pantalla de bienvenida

  • Después de abrir un proyecto, selecciona View > Tool Windows > Device Manager en la barra de menú principal y luego haz clic en Create device.

Nueva ventana del Administrador de dispositivos

Si quieres usar dispositivos virtuales para ejecutar tus pruebas de instrumentación automatizadas de una manera escalable y autoadministrada, considera usar dispositivos administrados por Gradle.

Acerca de los AVD

Un AVD contiene un perfil de hardware, una imagen del sistema, un área de almacenamiento y una máscara, entre otras propiedades.

Te recomendamos que crees un AVD para cada imagen del sistema que tu app pueda llegar a admitir según la configuración de <uses-sdk> de tu manifiesto.

Perfil de hardware

El perfil de hardware define las características de un dispositivo que se envía desde la fábrica. El Administrador de dispositivos incluye algunos perfiles de hardware precargados, como los de los dispositivos Pixel, que puedes definir o personalizar cuando sea necesario.

Diálogo Select Hardware

Una definición del dispositivo etiquetada con el logotipo de Google Play en la columna Play Store incluye la app de Google Play Store y acceso a los Servicios de Google Play, incluida la pestaña Google Play del diálogo Extended controls, que proporciona un botón práctico para actualizar los Servicios de Google Play en el dispositivo.

Los dispositivos con este logotipo y un tipo de dispositivo "Teléfono" también cumplen con CTS y pueden usar imágenes del sistema que incluyan la app de Play Store.

Imágenes del sistema

Una imagen del sistema etiquetada con las APIs de Google incluye acceso a los Servicios de Google Play.

Diálogo de System Image

En la pestaña Recommended, aparece una lista de imágenes del sistema recomendadas. En las otras pestañas, se incluye una lista más completa. En el panel derecho, se describe la imagen del sistema seleccionada.

Si ves un ícono de descarga junto a una imagen del sistema, significa que aún no está instalada en tu máquina de desarrollo. Haz clic en el ícono para descargar la imagen del sistema. Para descargar imágenes del sistema, debes tener conexión a Internet.

El nivel de API del dispositivo de destino es importante, ya que tu app no se ejecuta en una imagen del sistema con un nivel de API inferior al que necesita, según se especifica en el atributo minSdk del archivo de manifiesto de la app. Para obtener más información sobre la relación entre el nivel de API del sistema y minSdk, consulta Establece la versión de tu app.

Si tu app declara un elemento <uses-library> en el archivo de manifiesto, requerirá una imagen del sistema en la que se encuentre esa biblioteca externa. Para ejecutar tu app en un emulador, crea un AVD que incluya la biblioteca obligatoria. Si lo haces, es posible que debas usar un componente complementario para la plataforma de AVD (por ejemplo, el complemento de las APIs de Google contiene la biblioteca de Google Maps).

Para garantizar la seguridad de las apps y una experiencia uniforme con dispositivos físicos, las imágenes del sistema en las que se incluye Google Play Store se firman con una clave de lanzamiento, por lo que no puedes obtener privilegios elevados (de administrador) con esas imágenes.

Si solicitas privilegios elevados (de administrador) para solucionar un problema de tu app, puedes usar imágenes del sistema del Proyecto de código abierto de Android (AOSP), que no incluyen apps ni servicios de Google. Luego, puedes usar los comandos adb root y adb unroot para alternar entre los privilegios normales y elevados:

  % adb shell
  emu64a:/ $
  emu64a:/ $ exit
  % adb root
  restarting adbd as root
  % adb shell
  emu64a:/ #
  emu64a:/ # exit
  % adb unroot
  restarting adbd as non root
  % adb shell
  emu64a:/ $
  emu64a:/ $ exit
  %
  

Área de almacenamiento

El AVD tiene un área dedicada al almacenamiento en tu máquina de desarrollo. En ella, se almacenan los datos del usuario que están en el dispositivo, como los parámetros de configuración y las apps instaladas, y una tarjeta SD emulada. Si es necesario, puedes usar el Administrador de dispositivos para borrar los datos del usuario, de modo que el dispositivo tenga los mismos datos que tendría si fuese nuevo.

Máscara

La máscara de emulador especifica la apariencia de un dispositivo. El Administrador de dispositivos incluye algunas máscaras predefinidas, pero también puedes definir las tuyas propias o usar otras proporcionadas por terceros.

AVD y características de apps

Asegúrate de que en la definición de AVD se incluyan las características de dispositivo de las cuales depende tu app. Consulta las secciones sobre las propiedades de perfiles de hardware y las propiedades de AVD para obtener listas de características que puedes definir en tus AVD.

Cómo crear un AVD

Para crear un AVD nuevo:

  1. Abre el Administrador de dispositivos.
  2. Haz clic en Create device.

    Aparecerá la ventana Select Hardware.

    Ten en cuenta que solo algunos perfiles de hardware incluyen Play Store. Esos perfiles son totalmente compatibles con CTS y pueden usar imágenes del sistema que incluyan la app de Play Store.

  3. Selecciona un perfil de hardware y luego haz clic en Next.

    Si no ves el perfil de hardware que deseas, puedes crear o importar uno, como se describe en otras secciones de esta página.

    Aparecerá la ventana System Image.

  4. Selecciona la imagen del sistema para un nivel de API determinado y haz clic en Next.
  5. Aparecerá la ventana Verify Configuration.

  6. Modifica las propiedades de AVD según sea necesario y, luego, haz clic en Finish.

    Haz clic en Show Advanced Settings para que se muestren más parámetros de configuración, como la máscara.

  7. El nuevo AVD aparecerá en la pestaña Virtual del Administrador de dispositivos y en el menú del dispositivo de destino.

Para crear un AVD a partir de una copia:

  1. Desde la pestaña Virtual del Administrador de dispositivos, haz clic en Menu y elige Duplicate.

    Aparecerá la ventana Verify Configuration.

  2. Haz clic en Previous si necesitas hacer cambios en las ventanas System Image o Select Hardware.
  3. Realiza los cambios necesarios y luego haz clic en Finish.

    El AVD aparecerá en la pestaña Virtual del Administrador de dispositivos.

Cómo crear un perfil de hardware

El Administrador de dispositivos proporciona perfiles de hardware predefinidos para dispositivos comunes de modo que puedas agregarlos fácilmente a tus definiciones de AVD. Si debes definir un dispositivo diferente, puedes crear un perfil de hardware nuevo.

Puedes establecer un perfil de hardware nuevo desde el principio o copiar uno como punto de partida. No es posible editar perfiles de hardware precargados.

Para crear un perfil de hardware nuevo desde el comienzo:

  1. En la ventana Select Hardware, haz clic en New Hardware Profile.
  2. En la ventana Configure Hardware Profile, modifica las propiedades de perfiles de hardware según sea necesario.

    Diálogo Configure Hardware Profile
  3. Haz clic en Finish.

    El perfil de hardware nuevo aparecerá en la ventana Select Hardware. Puedes crear un AVD que use el perfil de hardware haciendo clic en Next o puedes volver a la pestaña Virtual o el menú del dispositivo de destino haciendo clic en Cancel.

Para crear un perfil de hardware a partir de una copia como punto de partida:

  1. En la ventana Select Hardware, selecciona un perfil de hardware y haz clic en Clone Device, o haz clic con el botón derecho en un perfil de hardware y selecciona Clone.

  2. En la ventana Configure Hardware Profile, modifica las propiedades de perfiles de hardware según sea necesario.
  3. Haz clic en Finish.
  4. El perfil de hardware nuevo aparecerá en la ventana Select Hardware. Puedes crear un AVD que use el perfil de hardware haciendo clic en Next o puedes volver a la pestaña Virtual o el menú del dispositivo de destino haciendo clic en Cancel.

Cómo editar AVD existentes

Puedes realizar las siguientes operaciones en un AVD desde la pestaña Virtual del Administrador de dispositivos:

  • Para editar un AVD, haz clic en Edit this AVD y realiza los cambios.
  • Para borrar un AVD, haz clic en Menu y selecciona Delete.
  • Para mostrar los archivos INI y IMG asociados del AVD en el disco, haz clic en Menu y selecciona Show on Disk.
  • Si deseas ver los detalles de configuración del AVD que puedes incluir en los informes de errores para el equipo de Android Studio, haz clic en Menu y selecciona View Details.

Cómo editar perfiles de hardware existentes

No puedes editar ni borrar perfiles de hardware precargados, pero puedes realizar las siguientes operaciones en otros perfiles de hardware desde la ventana Select Hardware:

  • Para editar un perfil de hardware, selecciónalo y haz clic en Edit Device. También puedes hacer clic con el botón derecho en un perfil de hardware y seleccionar Edit. Luego, realiza las modificaciones.
  • Para borrar un perfil de hardware, haz clic con el botón derecho en él y selecciona Delete.

Cómo ejecutar y detener un emulador, y borrar datos

En la pestaña Virtual, puedes realizar las siguientes operaciones en un emulador:

  • Para ejecutar un emulador que use un AVD, haz clic en Launch .
  • Para detener un emulador, haz clic en Menu y selecciona Stop.
  • Para borrar los datos de un emulador, haz clic en Menu y selecciona Wipe Data.

Cómo importar y exportar perfiles de hardware

En la ventana Select Hardware, puedes importar y exportar perfiles de hardware de la siguiente manera:

  • Para importar un perfil de hardware, haz clic en Import Hardware Profiles y selecciona el archivo en formato XML en tu computadora que contenga la definición.
  • Para exportar un perfil de hardware, haz clic con el botón derecho en él y selecciona Export. Especifica la ubicación en la que deseas almacenar el archivo en formato XML que contiene la definición.

Propiedades de AVD

La configuración de AVD especifica la interacción entre la máquina de desarrollo y el emulador, así como las propiedades que deseas anular en el perfil de hardware. Puedes especificar las siguientes propiedades para las configuraciones de AVD en la ventana Verify Configuration. Las propiedades etiquetadas (Advanced) solo se muestran si haces clic en Show Advanced Settings.

Las propiedades de configuración del AVD anulan las propiedades del perfil de hardware, y ambas son anuladas por las propiedades del emulador que estableces mientras este se encuentra en funcionamiento.

Tabla 1: Propiedades de configuración de AVD

Propiedad de AVD Descripción
AVD Name Introduce un nombre para el AVD. Puede contener mayúsculas o minúsculas, números, puntos, guiones bajos, paréntesis, guiones y espacios. El nombre del archivo que contiene la configuración de AVD deriva del nombre de este.
AVD ID (Advanced) Visualiza el ID del AVD. El ID del AVD deriva del nombre del AVD. Puedes usarlo para hacer referencia al AVD desde la línea de comandos.
Hardware Profile Haz clic en Change para seleccionar un perfil de hardware diferente en la ventana Select Hardware.
System Image Haz clic en Change para seleccionar una imagen del sistema diferente en la ventana System Image. Se requiere una conexión activa de Internet para descargar una imagen nueva.
Startup orientation

Selecciona una opción para la orientación inicial del emulador:

  • Portrait: Orientación de mayor altura que ancho
  • Landscape: Orientación de mayor ancho que altura

Se habilita una opción solo si se admite en el perfil de hardware. Si se ejecuta el AVD en el emulador, puedes modificar la orientación si el perfil de hardware admite tanto el formato vertical como el horizontal.

Camera (Advanced)

Selecciona una opción para cualquier cámara habilitada. Los parámetros de configuración de Emulated y VirtualScene producen una imagen generada por software, mientras que la configuración de Webcam usa la cámara web de tu computadora de desarrollo para tomar una foto.

Las opciones de cámara solo están disponibles si se admite una cámara en el perfil de hardware. No están disponibles para Wear OS, Android TV ni Google TV.

Network: Speed (Advanced)

Selecciona un protocolo de red para determinar la velocidad de la transferencia de datos:

  • GSM: Sistema de telefonía global para comunicaciones móviles
  • HSCSD: Datos de alta velocidad con conmutación de circuitos
  • GPRS: Servicio genérico de radiocomunicaciones por paquetes
  • EDGE: Velocidades de datos mejoradas para la evolución de GSM
  • UMTS: Sistema universal de telecomunicaciones móviles
  • HSDPA: Acceso a paquetes de alta velocidad por enlace descendente
  • LTE: Evolución a largo plazo
  • Full (predeterminada): Transfiere datos tan rápido como lo permite la computadora
Network: Latency (Advanced) Selecciona un protocolo de red para establecer el tiempo necesario para que el protocolo transfiera un paquete de datos de un punto a otro.
Emulated Performance: Graphics

Selecciona el modo en que se representan los gráficos en el emulador:

  • Hardware: Usa la tarjeta de gráficos de tu computadora para una renderización más rápida.
  • Software: Emula los gráficos en el software. Esto es útil si tienes un problema con la renderización en tu tarjeta gráfica.
  • Automatic: permite que el emulador determine la mejor opción según tu tarjeta gráfica.
Emulated Performance: Boot option (Advanced)

    Selecciona cómo se inicia el AVD:

  • Cold boot: El dispositivo se enciende cada vez desde el estado de apagado.
  • Quick boot: El dispositivo carga el estado del dispositivo desde una instantánea guardada.
Emulated Performance: Multi-Core CPU (Advanced) Selecciona la cantidad de núcleos del procesador de tu computadora que quieres usar para el emulador. El uso de más núcleos acelera el emulador.
Memory and Storage: RAM (Advanced) Anula la cantidad de memoria RAM en el dispositivo que estableció el fabricante del hardware. El aumento de tamaño ocupa más recursos de tu computadora, pero admite una operación del emulador más rápida. Introduce un tamaño de memoria RAM y selecciona las unidades: B (bytes), KB (kilobytes), MB (megabytes), GB (gigabytes) o TB (terabytes).
Memory and Storage: VM Heap (Advanced) Anula el tamaño de montón de VM que estableció el fabricante del hardware. Introduce un tamaño de montón y selecciona las unidades: B (bytes), KB (kilobytes), MB (megabytes), GB (gigabytes) o TB (terabytes).
Memory and Storage: Internal Storage (Advanced) Anula la cantidad de espacio de memoria no extraíble disponible en el dispositivo que estableció el fabricante del hardware. Introduce un tamaño y selecciona las unidades: B (bytes), KB (kilobytes), MB (megabytes), GB (gigabytes) o TB (terabytes).
Memory and Storage: SD Card (Advanced)

Especifica el espacio disponible de memoria extraíble para almacenar datos en el dispositivo.

Para usar una tarjeta SD administrada por Android Studio, selecciona Studio-managed, introduce un tamaño y selecciona las unidades: B (bytes), KB (kilobytes), MB (megabytes), GB (gigabytes) o TB (terabytes). Se recomiendan como mínimo 100 MB para usar la cámara.

Para administrar el espacio en un archivo, selecciona External file y haz clic en para especificar el archivo y la ubicación.

Para obtener más información, consulta mksdcard y el directorio de datos de AVD.

Device Frame: Enable Device Frame Habilita un marco alrededor de la ventana del emulador que reproduzca la apariencia de un dispositivo real.
Custom Skin Definition (Advanced) Selecciona una máscara que controle la apariencia del dispositivo cuando se muestre en el emulador. Especificar un tamaño de pantalla demasiado grande para la resolución puede hacer que la pantalla quede cortada y no puedas verla completa. Para obtener más información, consulta la sección Cómo crear una máscara de emulador.
Keyboard: Enable Keyboard Input (Advanced) Selecciona esta opción para usar el teclado de hardware para interactuar con el emulador. Esta opción está inhabilitada para Wear OS y Android TV.

Propiedades de perfiles de hardware

Puedes especificar las siguientes propiedades de los perfiles de hardware en la ventana Configure Hardware Profile. Las propiedades de configuración del AVD anulan las propiedades del perfil de hardware, y ambas son anuladas por las propiedades del emulador que estableces mientras este se encuentra en funcionamiento.

No se pueden editar los perfiles de hardware predefinidos que se incluyen con el Administrador de dispositivos. Sin embargo, puedes copiar los perfiles y editar las copias.

Algunas propiedades están inhabilitadas para algunos tipos de dispositivo. Por ejemplo, la propiedad "Round" solo está disponible en dispositivos Wear OS.

Tabla 2: Propiedades de configuración del perfil de hardware

Propiedad del perfil de hardware Descripción
Device Name Introduce un nombre para el perfil de hardware. Puede contener mayúsculas o minúsculas, números, puntos, guiones bajos, paréntesis y espacios. El nombre del archivo que contiene el perfil de hardware deriva del nombre de este último.
Device Type

Selecciona una de las siguientes opciones:

  • Teléfono/tablet
  • Wear OS
  • Android TV
  • Google TV
  • Dispositivo ChromeOS
  • Android Automotive
Screen: Screen Size Especifica el tamaño físico de la pantalla, en pulgadas, medidas en diagonal. Si el tamaño es superior al de la pantalla de tu computadora, se reduce en el inicio.
Screen: Screen Resolution Introduce una medida de ancho y alto en píxeles para especificar el número total de píxeles en la pantalla simulada.
Screen: Round Selecciona esta opción si el dispositivo tiene una pantalla redonda, como en el caso de algunos dispositivos Wear OS.
Memory: RAM Introduce un tamaño de memoria RAM para el dispositivo y selecciona las unidades: B (bytes), KB (kilobytes), MB (megabytes), GB (gigabytes) o TB (terabytes).
Input: Has Hardware Buttons (Back/Home/Menu) Selecciona esta opción si tu dispositivo tiene botones de navegación de hardware. Anula esta selección si estos botones se implementan únicamente en software. Si seleccionas esta opción, los botones no aparecerán en la pantalla. Puedes usar el panel lateral del emulador para "presionar" los botones en cualquiera de los casos.
Input: Has Hardware Keyboard Selecciona esta opción si tu dispositivo tiene un teclado de hardware. Anula la selección si no lo tiene. Si seleccionas esta opción, no aparece un teclado en la pantalla. En cualquiera de los casos, puedes usar el teclado de tu computadora para transmitir la pulsación de teclas al emulador.
Input: Navigation Style

Selecciona una de las siguientes opciones:

  • None: Sin controles de hardware (la navegación se realiza mediante software)
  • D-pad: Compatibilidad con mando de dirección
  • Trackball
  • Wheel

Estas opciones son para controles de hardware en el propio dispositivo. Sin embargo, los eventos enviados al dispositivo a través de un controlador externo son los mismos.

Supported Device States

Selecciona una o ambas opciones:

  • Portrait: Orientación de mayor altura que ancho
  • Landscape: Orientación de mayor ancho que altura

Debes seleccionar al menos una opción. Si seleccionas ambas, puedes intercambiarlas en el emulador.

Cameras

Para habilitar la cámara, selecciona una o ambas opciones:

  • Back-Facing Camera: Las lentes se orientan hacia el lado opuesto al del usuario.
  • Front-Facing Camera: Las lentes se orientan hacia el usuario.

Si la cámara está habilitada, puedes usar la cámara web de tu máquina de desarrollo o una foto proporcionada por el emulador para simular que tomas una foto, según las opciones que selecciones en la configuración del AVD.

Sensors: Accelerometer Selecciona esta opción si el dispositivo cuenta con hardware que le permita determinar su orientación.
Sensors: Gyroscope Selecciona esta opción si el dispositivo cuenta con hardware que detecte rotación o giros. Combinado con un acelerómetro, un giroscopio puede proporcionar una detección de orientación más fluida y admitir un sistema de orientación de seis ejes.
Sensors: GPS Selecciona esta opción si el dispositivo cuenta con hardware compatible con el sistema de posicionamiento global (GPS) de navegación satelital.
Sensors: Proximity Sensor Selecciona esta opción si el dispositivo cuenta con hardware que determina si se encuentra cerca del rostro del usuario durante una llamada telefónica para inhabilitar las entradas de la pantalla.
Default Skin Selecciona una máscara que controle la apariencia del dispositivo cuando se muestre en el emulador. Especificar un tamaño de pantalla demasiado grande para la resolución puede hacer que la pantalla quede recortada y no puedas verla por completo. Para obtener más información, consulta la siguiente sección sobre Cómo crear una máscara de emulador.

Cómo crear una máscara de emulador

Una máscara de emulador de Android es un grupo de archivos que definen los elementos visuales y de control de una pantalla de emulador. Si las definiciones de máscaras disponibles en los parámetros de configuración de AVD no cumplen con tus requisitos, puedes crear tu propia definición de máscara personalizada y, luego, aplicarla a tu AVD.

Cada máscara de emulador contiene:

  • Un archivo hardware.ini
  • Archivos de diseño para orientaciones compatibles y la configuración física
  • Archivos de imagen para elementos de pantalla (por ejemplo, fondo, teclas y botones)

Para crear y usar una máscara personalizada, haz lo siguiente:

  1. Crea un directorio en el que puedas guardar los archivos de configuración de la máscara.
  2. Define la apariencia visual de la máscara en un archivo de texto llamado layout. Este archivo definirá muchas características de la máscara, como el tamaño y los recursos de imagen para botones específicos. Por ejemplo:

    parts {
        device {
            display {
                width   320
                height  480
                x       0
                y       0
            }
        }
    
        portrait {
            background {
                image background_port.png
            }
    
            buttons {
                power {
                    image  button_vertical.png
                    x 1229
                    y 616
                }
            }
        }
        ...
    }
    

  3. Agrega archivos de mapas de bits de las imágenes del dispositivo en el mismo directorio.
  4. Especifica configuraciones adicionales del dispositivo específicas de hardware en un archivo INI para los parámetros de configuración del dispositivo, como hw.keyboard y hw.lcd.density.
  5. Guarda los archivos en la carpeta de máscaras y selecciona el archivo de almacenamiento como una máscara personalizada.

Para obtener información más detallada sobre la creación de máscaras de emulador, consulta la Especificación de archivos de máscaras de Android Emulator en el código fuente de las herramientas.