Cómo usar dispositivos virtuales de Android Emulator

Puedes usar Android Emulator para crear emulaciones de dispositivos Android que ejecuten tus imágenes personalizadas del sistema. También puedes compartir esas imágenes para que otros usuarios puedan ejecutar las emulaciones correspondientes. Además, puedes agregar compatibilidad con varias pantallas a las emulaciones de Android Emulator.

Arquitectura de Android Emulator

Android Emulator te permite ejecutar emulaciones de dispositivos Android en computadoras con Windows, macOS o Linux. Android Emulator ejecuta el sistema operativo Android en una máquina virtual llamada dispositivo virtual de Android (AVD). El AVD contiene la pila de software de Android completa y se ejecuta como si estuviera en un dispositivo físico. La figura 1 es un diagrama de la arquitectura general de Android Emulator. Consulta Cómo ejecutar apps en Android Emulator para obtener más información sobre el emulador.

Arquitectura de Android Emulator

Figura 1: Arquitectura de Android Emulator

Cómo compilar imágenes de AVD

Cada AVD incluye una imagen del sistema Android, que se ejecuta en ese AVD. El Administrador de AVD incluye algunas imágenes del sistema. Además, puedes compilar imágenes del sistema del AVD personalizadas a partir de tu código fuente y crear emulaciones de dispositivos para ejecutarlas.

Para compilar y ejecutar una imagen del sistema del AVD, haz lo siguiente:

  1. Descarga la fuente de Android:

    mkdir aosp-master; cd aosp-master
    repo init -u
    repo sync -j24
    

    Si deseas compilar otras versiones de Android, puedes encontrar sus nombres de rama en el repositorio público de Android. Se mapean a nombres internos, etiquetas y números de compilación de Android.

  2. Compila una imagen del sistema del AVD. Este proceso es el mismo que para compilar una imagen del sistema del dispositivo Android. Por ejemplo, para compilar un AVD x86 de 32 bits, haz lo siguiente:

    mkdir aosp-master; cd aosp-master
    source ./build/envsetup.sh
    lunch sdk_phone_x86
    make -j32
    

    Si prefieres compilar un AVD x86 de 64 bits, ejecuta lunch para ese destino:

    lunch sdk_phone_x86_64
    
  3. Ejecuta la imagen del sistema del AVD en Android Emulator:

    emulator
    

Consulta las Opciones de inicio de la línea de comandos para obtener más detalles sobre cómo ejecutar el emulador. La figura 2 muestra un ejemplo en el que Android Emulator ejecuta un AVD.

Android Emulator ejecutando un AVD

Figura 2: Android Emulator ejecutando un AVD

Cómo compartir imágenes del sistema de AVD para que otras personas puedan usarlas con Android Studio

Sigue estas instrucciones para compartir tus imágenes del sistema del AVD con otros usuarios. Podrán usar tus imágenes del sistema del AVD con Android Studio para desarrollar y probar apps.

  1. Crea paquetes sdk y sdk_repo adicionales:

    $ make -j32 sdk sdk_repo
    

    Esta acción creará dos archivos en aosp-master/out/host/linux-x86/sdk/sdk_phone_x86:

    • sdk-repo-linux-system-images-eng.[username].zip
    • repo-sys-img.xml
  2. Aloja el archivo sdk-repo-linux-system-images-eng.[username].zip en un lugar accesible para los usuarios y obtén su URL a fin de usarla como la URL de la imagen del sistema del AVD.

  3. Edita repo-sys-img.xml según corresponda:

    • Actualiza <sdk:url> a tu URL de imagen del sistema del AVD.
    • Consulta sdk-sys-img-03.xsd para obtener información sobre otras actualizaciones del archivo.
  4. Aloja repo-sys-img.xml en algún lugar accesible para tus usuarios y obtén su URL a fin de usarla como URL personalizada del sitio de actualización.

Para usar una imagen del AVD personalizado, haz lo siguiente en SDK Manager:

  1. Agrega la URL personalizada del sitio de actualización como sitio de actualización del SDK.

    De esta manera, se agregará tu imagen del sistema del AVD personalizado a la página Imágenes del sistema.

  2. Crea un AVD, Para ello, descarga y elige la imagen del sistema del AVD personalizado.

Cómo agregar compatibilidad con varias pantallas

Android 10 mejora el modo multipantalla (MD) para admitir mejor más casos de uso, como los modos automático y de escritorio. Android Emulator también admite la emulación de varias pantallas. Por lo tanto, puedes crear un entorno específico de varias pantallas sin configurar el hardware real.

Realiza los siguientes cambios o selecciona entre estos CL para agregar compatibilidad con varias pantallas a un AVD.

  • Para agregar un proveedor de varias pantallas a la compilación, incluye estas líneas en el archivo build/target/product/sdk_phone_x86.mk:

    PRODUCT_ARTIFACT_PATH_REQUIREMENT_WHITELIST := \
        system/lib/libemulator_multidisplay_jni.so \
        system/lib64/libemulator_multidisplay_jni.so \
        system/priv-app/MultiDisplayProvider/MultiDisplayProvider.apk \
    PRODUCT_PACKAGES += MultiDisplayProvider
    
  • Para habilitar la marca de función de varias pantallas, agrega esta línea al archivo device/generic/goldfish/data/etc/advancedFeatures.ini:

    MultiDisplay = on
    

Puedes encontrar la información de actualización y las funciones más recientes del emulador en las siguientes fuentes: