Para usar dispositivos virtuales de Android (AVD), Android Emulator admite una interfaz gráfica de usuario (GUI) y una interfaz de línea de comandos (CLI). Seleccionas el flujo de trabajo óptimo para tu entorno.
- Crear y administrar una GUI de dispositivos virtuales, una herramienta sencilla que se proporciona a la mayoría de los desarrolladores y usuarios de apps.
- Iniciar el emulador desde la línea de comandos proporciona una forma flexible para los power users y la automatización. Por ejemplo, para usar varios AVD o configurar pruebas continuas y la integración continua. Para comenzar, consulta los ejemplos en Herramientas.
Cómo compilar AVD para automóviles del AOSP
El proceso para compilar un AVD para automóviles del AOSP es similar al de compilación de imágenes de AVD para un teléfono (por ejemplo, aosp_car_x86_64):
- Para configurar el entorno de desarrollo y, luego, identificar una rama, consulta Herramientas de control de código fuente. Luego, revisa Cómo descargar el código fuente de Android:
ANDROID_BRANCH="android12L-release"
REPO_URL="https://android.googlesource.com/platform/manifest"
mkdir $ANDROID_BRANCH && cd $ANDROID_BRANCH && repo init -u $REPO_URL -b $ANDROID_BRANCH --partial-clone && repo sync -c -j8 - Compila la imagen del AVD:
. build/envsetup.sh && lunch sdk_car_x86_64-userdebug && m -j32
- Ejecuta la imagen del AVD (agrega opciones de inicio de la línea de comandos adicionales según sea necesario):
emulator &
Por ejemplo:
Figura 1: Pantalla de Android Virtual Emulator
Notas sobre este proceso:
- Dado que el proceso de compilación es el mismo que se necesita para compilar Android para un dispositivo físico, espera un tiempo para descargar la fuente y, luego, compilarla.
- Para trabajar en otras ramas, establece
$ANDROID_BRANCH
en otra rama o etiqueta. - Las imágenes del AVD, como
system.img
, se compilan en$ANDROID_PRODUCT_OUT
. Para obtener más información sobre las imágenes clave, consulta el directorio del sistema de AVD. - Consulta el archivo README para obtener información sobre cómo se usan los archivos binarios del emulador prediseñado en tu árbol de Android para ejecutar el emulador.
Crea un AVD para automóviles
Los pasos para agregar un nuevo AVD para el automóvil son casi los mismos que para agregar un dispositivo nuevo. Por ejemplo, 1660554
crea un nuevo AVD avd_car
.
Para crear un AVD para automóviles, sigue estos pasos:
- Crea una empresa y una carpeta de dispositivos según sea necesario. En este ejemplo, se usa
$ANDROID_BUILD_TOP/device/google_car/avd_car
. - Crea el archivo makefile del producto,
avd_car.mk
, que define cómo compilar el AVD. - Crea una carpeta del dispositivo,
avd_car_device
, que contengaBoardConfig.mk
ysource.properties
. - Agrega la nueva
makefile
y la nueva opción delunch
aAndroidProducts.mk
. - Para compilar y ejecutar el nuevo AVD
avd_car
, haz lo siguiente:. build/envsetup.sh && lunch acar-userdebug && m -j32 && emulator &
Cómo empaquetar un archivo ZIP de imagen del AVD
Puedes empaquetar y compartir tu AVD con otras personas, o bien usarlo en otra computadora. Usa emu_img_zip.mk
para generar el archivo ZIP de la imagen del AVD:
- Después de compilar el AVD, establece
emu_img_zip
como destino:m emu_img_zip
- El archivo ZIP de la imagen del AVD, con el prefijo
sdk-repo-linux-system-images
, se crea en la carpeta llamada$ANDROID_PRODUCT_OUT
.
Cómo compilar un kernel del AVD
Los kernels de AVD son similares a otros kernels de Android, ya que todos son imágenes prediseñadas. Por lo general, puedes usar las imágenes prediseñadas del kernel de goldfish estándar tal como están en cada versión de Android.
Para experimentar con los cambios del kernel, haz lo siguiente:
- Ejecuta la siguiente serie de instrucciones:
mkdir goldfish-kernel-54 cd goldfish-kernel-54 repo init -u https://android.googlesource.com/kernel/manifest -b common-android11-5.4 repo sync BUILD_CONFIG=common/build.config.gki.x86_64 build/build.sh BUILD_CONFIG=common-modules/virtual-device/build.config.goldfish.x86_64 build/build.sh ls -l ./out/android11-5.4/dist/
- Reemplaza el objeto binario del kernel en la base de código según el archivo makefile del AVD. Por ejemplo,
device/generic/goldfish/board/emu64x/details.mk
incluyedevice/generic/goldfish/board/kernel/x86_64.mk
.
El código y la configuración del kernel se encuentran en las siguientes ubicaciones:
Elemento | Valor |
---|---|
Rama | common-android11-5.4 (se usa en Android 11) |
Manifiesto | kernel/manifest/common-android11-5.4 |
common-modules/virtual-device | kernel/common-modules/virtual-device/android11-5.4 |
Kernel | kernel/common/android11-5.4 |
Crea un perfil de dispositivo nuevo
Para permitir que los usuarios creen un AVD específico en el Administrador de AVD de Android Studio, consulta Cómo crear y administrar dispositivos virtuales.
Los fabricantes de dispositivos pueden definir sus propias especificaciones de hardware, como el tamaño de la pantalla y los DPI, con el uso de un archivo devices.xml
incluido en la imagen del AVD.
- Por ejemplo, consulta los perfiles de dispositivos automotrices en
automotive.xml
. - Para el desarrollo o la creación de prototipos de HMI, se pueden agregar varios dispositivos al archivo de la misma imagen del AVD.
- Incluye el archivo en el archivo ZIP de la imagen del AVD del OEM en la carpeta
[ABI]
. Por ejemplo,x86_64
. - Los fabricantes de dispositivos también pueden crear una máscara de emulador. Por ejemplo, para definir botones de hardware adicionales para una UX de mayor fidelidad. Esto no solo es útil para los flujos de trabajo de los desarrolladores, sino también para otras tareas, como la investigación y la revisión de UX.
Crea el archivo XML de imagen del AVD
Los fabricantes de dispositivos pueden crear un archivo XML de imagen de AVD para que Android Studio lo descargue.
- Por ejemplo, consulta el archivo XML de la imagen del AVD de AAOS,
sys-img2-1.xml
. - Los fabricantes de dispositivos pueden definir su propio acuerdo de licencia del AVD del OEM para sus usuarios objetivo (con el sistema de honor), con la licencia de Android Emulator. Android Studio obtiene el consentimiento del usuario cuando se incluye una licencia de este tipo.
Para crear la imagen, haz lo siguiente:
- Prepara un archivo ZIP de imagen del AVD.
- Descomprime
${ANDROID_PRODUCT_OUT}/sdk-repo-linux-system-images-*.zip
. - Agrega
devices.xml
a la carpetax86_64
y, luego, comprime el archivo en un archivo ZIP. Por ejemplo,oem_avd_img_x86_64.zip
. - Actualiza
oem-sys-img2-1.xml
. - Actualiza el nombre, el tamaño y el shasum del archivo ZIP (los archivos en formato XML de muestra se proporcionan en
tools
).
Por ejemplo, para alojar el AVD en Cloud Storage de Google, consulta Crea buckets de almacenamiento.
Para subir el AVD y permitir el acceso público a él, consulta Haz públicos los datos:
BUCKET_NAME="aaos-avd" gsutil mb gs://$BUCKET_NAME gsutil cp oem_avd_img_x86_64.zip gs://$BUCKET_NAME gsutil cp oem-sys-img2-1.xml gs://$BUCKET_NAME gsutil iam ch allUsers:objectViewer gs://$BUCKET_NAME
El formato de la URL del SDK complementario de la imagen del AVD es el siguiente: https://storage.googleapis.com/$BUCKET_NAME/oem-sys-img2-1.xml
.
Por ejemplo, si BUCKET_NAME es aaos-avd, la URL es https://storage.googleapis.com/aaos-avd/oem-sys-img2-1.xml
.
Cómo compartir una imagen del AVD con usuarios de Android Studio
Para que los usuarios puedan descargar imágenes del AVD y usar tu AVD con Android Studio, puedes proporcionar un archivo XML del complemento del SDK. Para obtener más información, consulta Cómo actualizar el IDE y las herramientas del SDK.
Para descargar el AVD de la red, haz lo siguiente:
- Aloja los archivos XML y el archivo ZIP de la imagen en un servidor.
- Proporciona la URL a los usuarios objetivo.
- (Opcional) Limita el acceso con nombre de usuario y contraseña.
Como alternativa, para acelerar el desarrollo, descarga el AVD en un directorio local:
- Guarda los archivos XML y todos los artefactos especificados en el archivo XML en una carpeta (por ejemplo, todos los archivos ZIP de imágenes del AVD) llamada
ADDON_DIR
. - Especifica la URL como
file://$ADDON_DIR/oem-sys-img2-1.xml
.