Cómo usar dispositivos virtuales con Android Emulator

Puedes usar Android Emulator para crear emulaciones de dispositivos Android que ejecuten tus imágenes del sistema de Android personalizadas. Además, puedes agregar compatibilidad con varias pantallas a las emulaciones de Android Emulator.

Arquitectura de Android Emulator

Android Emulator ejecuta el sistema operativo Android en una máquina virtual llamada dispositivo virtual de Android (AVD). Cada AVD contiene la pila de software de Android completa y se ejecuta como si estuviera en un dispositivo físico. En la figura 1, se muestra 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 del 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-main; cd aosp-main
    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.

  1. 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 64 bits, haz lo siguiente:

    source ./build/envsetup.sh
    lunch sdk_phone_x86_64
    make -j32
  2. 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 de ejecución del emulador. En la figura 2, se 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 del 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:

    En el caso de Android 13 y versiones posteriores, usa el comando emu_img_zip:

    $ make emu_img_zip
    

    Con esto, se genera un archivo sdk-repo-linux-system-images-eng.[username]].zip.

    En el caso de Android 12 y versiones anteriores, usa el comando sdk_repo:

    $ make -j32 sdk sdk_repo
    

    El comando make sdk sdk_repo crea dos archivos en aosp-main/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 para usarla como la URL de la imagen del sistema del AVD.

  3. En el caso de Android 12 y versiones anteriores, edita repo-sys-img.xml de manera acorde:

    • 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.
    • Aloja repo-sys-img.xml en algún lugar accesible para los usuarios y obtén su URL para usarla como la 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 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: