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.
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:
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.
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
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:
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.
Crea paquetes
sdk
ysdk_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 enaosp-main/out/host/linux-x86/sdk/sdk_phone_x86
:sdk-repo-linux-system-images-eng.[username].zip
repo-sys-img.xml
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.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.
- Actualiza
Para usar una imagen del AVD personalizado, haz lo siguiente en SDK Manager:
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.
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: