Dispositivo virtual Android como plataforma de desarrollo

Para utilizar dispositivos virtuales de Android (AVD), el emulador de Android admite una interfaz gráfica de usuario (GUI) y una interfaz de línea de comandos (CLI). Usted selecciona el flujo de trabajo óptimo para su entorno.

Inicie un AVD para automóvil AOSP utilizando elementos prediseñados

Para iniciar y probar rápidamente usando AOSP Car AVD prediseñado, use un script de código abierto para descargar e iniciar una compilación del emulador desde ci.android.com . El script ha sido probado en MacOS y Linux.

Necesitará Curl para usar este script.

Para ejecutar el script:

  1. Copie el contenido del script launch_emu.sh a su archivo local, asumiendo que usa launch_emu.sh como nombre de archivo local.
  2. Haga ejecutable su script local. Por ejemplo, ejecute chmod +x ./launch_emu.sh .
  3. Verifique las opciones disponibles ejecutando el script con ./launch_emu.sh -h .
  4. En ci.android.com , vaya a la rama aosp-main-throttled y seleccione una compilación reciente en la que sdk_car_x86_64 esté verde. Por ejemplo, 11370359. Si no ve la información de compilación, cierre sesión en su cuenta de Google y vuelva a intentarlo.
  5. Descargue e instale los archivos binarios relevantes para el emulador con la identificación de compilación. Por ejemplo, ./launch_emu.sh -i -a 11370359 .
  6. Después de esto, puede usar ./launch_emu.sh para iniciar el emulador descargado e instalado (no use las opciones -i o -a ).
  7. Para descargar e instalar otra identificación de compilación, ejecute ./launch_emu.sh -c para limpiar su espacio de trabajo y luego repita los pasos 4 y 5 anteriores.

Para especificar las opciones de inicio de la línea de comandos del emulador de Android al iniciar el emulador, use la opción -v . Por ejemplo:

  ./launch_emu.sh -v “-cores 4 -memory 6144 -no-snapshot"

Construir un AVD para automóvil AOSP

El proceso para crear un AVD para automóvil AOSP es similar a crear imágenes AVD para un teléfono (por ejemplo, aosp_car_x86_64):

  1. Para configurar el entorno de desarrollo e identificar una rama, consulte Herramientas de control de código fuente . Luego revise Descargando la fuente :
    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
  2. Construya la imagen AVD:
    . build/envsetup.sh && lunch sdk_car_x86_64-userdebug && m -j32
  3. Ejecute la imagen AVD (agregue opciones de inicio de línea de comandos adicionales según sea necesario):
    emulator &

    Por ejemplo:

    Figura 1. Pantalla del emulador virtual de Android

    Notas sobre este proceso:

    • Debido a que el proceso de compilación es el mismo que se requiere para compilar Android para un dispositivo físico, espere un tiempo para descargar la fuente y luego compilarla.
    • Para trabajar en otras ramas, configure $ANDROID_BRANCH en otra rama/etiqueta .
    • Las imágenes AVD, como system.img , se crean en $ANDROID_PRODUCT_OUT . Para obtener más información sobre las imágenes clave, consulte Directorio del sistema AVD .
    • Consulte el archivo README para saber cómo se utilizan los archivos binarios del emulador prediseñados en su árbol de Android para ejecutar el emulador.

Crear un AVD de coche

Agregar un AVD de automóvil nuevo es casi idéntico a Agregar un nuevo dispositivo . Por ejemplo, 1660554 crea un nuevo AVD avd_car .

Para crear un AVD de automóvil:

  1. Cree una empresa y una carpeta de dispositivo según sea necesario. Este ejemplo utiliza $ANDROID_BUILD_TOP/device/google_car/avd_car .
  2. Cree el archivo MAKE del producto, avd_car.mk , que define cómo construir el AVD.
  3. Cree una carpeta de dispositivo, avd_car_device , en la que contenga BoardConfig.mk y source.properties .
  4. Agregue el nuevo makefile y la nueva opción lunch a AndroidProducts.mk .
  5. Para compilar y ejecutar el nuevo AVD avd_car :
    . build/envsetup.sh && lunch acar-userdebug && m -j32 && emulator &
Ahora está listo para crear prototipos de la mayoría de las funciones de aplicaciones y HMI en su nuevo AVD.

Empaquetar un archivo zip de imagen AVD

Puede empaquetar y compartir su AVD con otras personas o usarlo en otra computadora. Utilice emu_img_zip.mk para generar el archivo zip de imagen AVD:

  1. Después de crear el AVD, convierta emu_img_zip en el objetivo:
    m emu_img_zip
  2. El archivo zip de imagen AVD, con el prefijo sdk-repo-linux-system-images , se crea en la carpeta denominada $ANDROID_PRODUCT_OUT .

Construir un kernel AVD

Los kernels AVD son similares a otros kernels de Android en el sentido de que todos son imágenes prediseñadas. Normalmente, puede utilizar las imágenes prediseñadas estándar del kernel de peces de colores tal como están en cada versión de Android.

Para experimentar con cambios de kernel:

  1. Ejecute 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/
    
  2. Reemplace el binario del kernel en el código base de acuerdo con el archivo MAKE AVD. Por ejemplo, x86_64-vendor.mk incluye x86_64-kernel.mk .

El código del kernel y la configuración se encuentran a continuación:

Artículo Valor
Rama common-android11-5.4 (usado en Android 11)
Manifiesto kernel/manifest/common-android11-5.4
módulos-comunes/dispositivo-virtual kernel/common-modules/virtual-device/android11-5.4
Núcleo kernel/common/android11-5.4

Crear un nuevo perfil de dispositivo

Para permitir a los usuarios crear un AVD específico en Android Studio AVD Manager, consulte 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, mediante el uso de un archivo devices.xml incluido en la imagen AVD.

  • Por ejemplo, consulte los perfiles de dispositivos automotrices en automotive.xml .
  • Para el desarrollo de HMI o la creación de prototipos, se pueden agregar varios dispositivos al archivo para la misma imagen AVD.
  • Incluya el archivo en el archivo zip de imagen AVD OEM en la carpeta [ABI] . Por ejemplo, como 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 experiencia de usuario de mayor fidelidad. Esto no sólo es útil para los flujos de trabajo de los desarrolladores, sino también para otras tareas como la investigación y revisión de UX.

Cree el archivo XML de imagen AVD

Los fabricantes de dispositivos pueden crear un archivo XML de imagen AVD para que Android Studio lo descargue.

  • Por ejemplo, consulte el archivo XML de imagen AAOS AVD, sys-img2-1.xml .
  • Los fabricantes de dispositivos pueden definir su propio acuerdo de licencia OEM AVD para sus usuarios objetivo (empleando el sistema de honor), con la licencia para el emulador de Android. Android Studio obtiene el consenso de los usuarios cuando se incluye dicha licencia.

Para crear la imagen:

  1. Prepare un archivo zip de imagen AVD.
  2. Descomprima ${ANDROID_PRODUCT_OUT}/sdk-repo-linux-system-images-*.zip .
  3. Agregue devices.xml a la carpeta x86_64 y luego comprima el archivo en un archivo zip. Por ejemplo, como oem_avd_img_x86_64.zip .
  4. Actualice oem-sys-img2-1.xml .
  5. Actualice el nombre, el tamaño y el shasum del archivo zip (se proporcionan archivos XML de muestra en tools ).

Por ejemplo, para alojar el AVD en Google Cloud Storage , consulte Creación de depósitos de almacenamiento .

Para cargar y hacer que el AVD sea de acceso público, consulte Hacer 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 URL del complemento del SDK de imágenes 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 .

Compartir una imagen AVD con usuarios de Android Studio

Para que sus usuarios puedan descargar imágenes AVD y usar su AVD de Android Studio, puede proporcionar un archivo XML complementario del SDK. Para obtener más información, consulte Actualización de las herramientas IDE y SDK .

Para descargar el AVD de la red:

  1. Aloje el archivo zip de imagen y los archivos XML en un servidor.
  2. Proporcione la URL a sus usuarios objetivo.
  3. ( Opcional ) Limite el acceso por nombre de usuario y contraseña.

Alternativamente, para acelerar el desarrollo, descargue el AVD a un directorio local:

  1. Guarde los archivos XML y todos los artefactos especificados en el archivo XML en una carpeta (por ejemplo, todos los archivos zip de imágenes AVD) denominada ADDON_DIR .
  2. Especifique la URL como file://$ADDON_DIR/oem-sys-img2-1.xml .
,

Para utilizar dispositivos virtuales de Android (AVD), el emulador de Android admite una interfaz gráfica de usuario (GUI) y una interfaz de línea de comandos (CLI). Usted selecciona el flujo de trabajo óptimo para su entorno.

Inicie un AVD para automóvil AOSP utilizando elementos prediseñados

Para iniciar y probar rápidamente usando AOSP Car AVD prediseñado, use un script de código abierto para descargar e iniciar una compilación del emulador desde ci.android.com . El script ha sido probado en MacOS y Linux.

Necesitará Curl para usar este script.

Para ejecutar el script:

  1. Copie el contenido del script launch_emu.sh a su archivo local, asumiendo que usa launch_emu.sh como nombre de archivo local.
  2. Haga ejecutable su script local. Por ejemplo, ejecute chmod +x ./launch_emu.sh .
  3. Verifique las opciones disponibles ejecutando el script con ./launch_emu.sh -h .
  4. En ci.android.com , vaya a la rama aosp-main-throttled y seleccione una compilación reciente en la que sdk_car_x86_64 esté verde. Por ejemplo, 11370359. Si no ve la información de compilación, cierre sesión en su cuenta de Google y vuelva a intentarlo.
  5. Descargue e instale los archivos binarios relevantes para el emulador con la identificación de compilación. Por ejemplo, ./launch_emu.sh -i -a 11370359 .
  6. Después de esto, puede usar ./launch_emu.sh para iniciar el emulador descargado e instalado (no use las opciones -i o -a ).
  7. Para descargar e instalar otra identificación de compilación, ejecute ./launch_emu.sh -c para limpiar su espacio de trabajo y luego repita los pasos 4 y 5 anteriores.

Para especificar las opciones de inicio de la línea de comandos del emulador de Android al iniciar el emulador, use la opción -v . Por ejemplo:

  ./launch_emu.sh -v “-cores 4 -memory 6144 -no-snapshot"

Construir un AVD para automóvil AOSP

El proceso para crear un AVD para automóvil AOSP es similar a crear imágenes AVD para un teléfono (por ejemplo, aosp_car_x86_64):

  1. Para configurar el entorno de desarrollo e identificar una rama, consulte Herramientas de control de código fuente . Luego revise Descargando la fuente :
    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
  2. Construya la imagen AVD:
    . build/envsetup.sh && lunch sdk_car_x86_64-userdebug && m -j32
  3. Ejecute la imagen AVD (agregue opciones de inicio de línea de comandos adicionales según sea necesario):
    emulator &

    Por ejemplo:

    Figura 1. Pantalla del emulador virtual de Android

    Notas sobre este proceso:

    • Debido a que el proceso de compilación es el mismo que se requiere para compilar Android para un dispositivo físico, espere algo de tiempo para descargar la fuente y luego compilarla.
    • Para trabajar en otras ramas, configure $ANDROID_BRANCH en otra rama/etiqueta .
    • Las imágenes AVD, como system.img , se crean en $ANDROID_PRODUCT_OUT . Para obtener más información sobre las imágenes clave, consulte Directorio del sistema AVD .
    • Consulte el archivo README para saber cómo se utilizan los archivos binarios del emulador prediseñados en su árbol de Android para ejecutar el emulador.

Crear un AVD de coche

Agregar un AVD de automóvil nuevo es casi idéntico a Agregar un nuevo dispositivo . Por ejemplo, 1660554 crea un nuevo AVD avd_car .

Para crear un AVD de automóvil:

  1. Cree una empresa y una carpeta de dispositivo según sea necesario. Este ejemplo utiliza $ANDROID_BUILD_TOP/device/google_car/avd_car .
  2. Cree el archivo MAKE del producto, avd_car.mk , que define cómo construir el AVD.
  3. Cree una carpeta de dispositivo, avd_car_device , en la que contenga BoardConfig.mk y source.properties .
  4. Agregue el nuevo makefile y la nueva opción lunch a AndroidProducts.mk .
  5. Para compilar y ejecutar el nuevo AVD avd_car :
    . build/envsetup.sh && lunch acar-userdebug && m -j32 && emulator &
Ahora está listo para crear prototipos de la mayoría de las funciones de aplicaciones y HMI en su nuevo AVD.

Empaquetar un archivo zip de imagen AVD

Puede empaquetar y compartir su AVD con otras personas o usarlo en otra computadora. Utilice emu_img_zip.mk para generar el archivo zip de imagen AVD:

  1. Después de crear el AVD, convierta emu_img_zip en el objetivo:
    m emu_img_zip
  2. El archivo zip de imagen AVD, con el prefijo sdk-repo-linux-system-images , se crea en la carpeta denominada $ANDROID_PRODUCT_OUT .

Construir un kernel AVD

Los kernels AVD son similares a otros kernels de Android en el sentido de que todos son imágenes prediseñadas. Normalmente, puede utilizar las imágenes prediseñadas estándar del kernel de peces de colores tal como están en cada versión de Android.

Para experimentar con cambios de kernel:

  1. Ejecute 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/
    
  2. Reemplace el binario del kernel en el código base de acuerdo con el archivo MAKE AVD. Por ejemplo, x86_64-vendor.mk incluye x86_64-kernel.mk .

El código del kernel y la configuración se encuentran a continuación:

Artículo Valor
Rama common-android11-5.4 (usado en Android 11)
Manifiesto kernel/manifest/common-android11-5.4
módulos-comunes/dispositivo-virtual kernel/common-modules/virtual-device/android11-5.4
Núcleo kernel/common/android11-5.4

Crear un nuevo perfil de dispositivo

Para permitir a los usuarios crear un AVD específico en Android Studio AVD Manager, consulte 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, mediante el uso de un archivo devices.xml incluido en la imagen AVD.

  • Por ejemplo, consulte los perfiles de dispositivos automotrices en automotive.xml .
  • Para el desarrollo de HMI o la creación de prototipos, se pueden agregar varios dispositivos al archivo para la misma imagen AVD.
  • Incluya el archivo en el archivo zip de imagen AVD OEM en la carpeta [ABI] . Por ejemplo, como 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 experiencia de usuario de mayor fidelidad. Esto no sólo es útil para los flujos de trabajo de los desarrolladores, sino también para otras tareas como la investigación y revisión de UX.

Cree el archivo XML de imagen AVD

Los fabricantes de dispositivos pueden crear un archivo XML de imagen AVD para que Android Studio lo descargue.

  • Por ejemplo, consulte el archivo XML de imagen AAOS AVD, sys-img2-1.xml .
  • Los fabricantes de dispositivos pueden definir su propio acuerdo de licencia OEM AVD para sus usuarios objetivo (empleando el sistema de honor), con la licencia para el emulador de Android. Android Studio obtiene el consenso de los usuarios cuando se incluye dicha licencia.

Para crear la imagen:

  1. Prepare un archivo zip de imagen AVD.
  2. Descomprima ${ANDROID_PRODUCT_OUT}/sdk-repo-linux-system-images-*.zip .
  3. Agregue devices.xml a la carpeta x86_64 y luego comprima el archivo en un archivo zip. Por ejemplo, como oem_avd_img_x86_64.zip .
  4. Actualice oem-sys-img2-1.xml .
  5. Actualice el nombre, el tamaño y el shasum del archivo zip (se proporcionan archivos XML de muestra en tools ).

Por ejemplo, para alojar el AVD en Google Cloud Storage , consulte Creación de depósitos de almacenamiento .

Para cargar y hacer que el AVD sea de acceso público, consulte Hacer 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 URL del complemento del SDK de imágenes 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 .

Compartir una imagen AVD con usuarios de Android Studio

Para que sus usuarios puedan descargar imágenes AVD y usar su AVD de Android Studio, puede proporcionar un archivo XML complementario del SDK. Para obtener más información, consulte Actualización de las herramientas IDE y SDK .

Para descargar el AVD de la red:

  1. Aloje el archivo zip de imagen y los archivos XML en un servidor.
  2. Proporcione la URL a sus usuarios objetivo.
  3. ( Opcional ) Limite el acceso por nombre de usuario y contraseña.

Alternativamente, para acelerar el desarrollo, descargue el AVD a un directorio local:

  1. Guarde los archivos XML y todos los artefactos especificados en el archivo XML en una carpeta (por ejemplo, todos los archivos zip de imágenes AVD) denominada ADDON_DIR .
  2. Especifique la URL como file://$ADDON_DIR/oem-sys-img2-1.xml .