Android Virtual Device come piattaforma di sviluppo

Per utilizzare Android Virtual Devices (AVD), Android Emulator supporta una Graphic User Interface (GUI) e un'interfaccia a riga di comando (CLI). Selezioni il workflow ottimale per il tuo ambiente.

Crea un AVD per AOSP Car

La procedura per creare un AVD per AOSP Car è simile alla creazione di immagini AVD per uno smartphone (ad esempio, aosp_car_x86_64):

  1. Per configurare l'ambiente di sviluppo e identificare un ramo, consulta Strumenti di controllo del codice sorgente. Dopodiché, consulta Download del codice sorgente:
    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. Crea l'immagine AVD:
    . build/envsetup.sh && lunch sdk_car_x86_64-userdebug && m -j32
  3. Esegui l'immagine AVD (aggiungi altre opzioni di avvio della riga di comando se necessario):
    emulator &

    Ad esempio:

    Figura 1. Schermo dell'emulatore virtuale Android

    Note su questa procedura:

    • Poiché il processo di compilazione è lo stesso necessario per creare Android per un dispositivo fisico, concedi un po' di tempo per scaricare l'origine e poi compilarla.
    • Per lavorare su altri rami, imposta $ANDROID_BRANCH su un altro ramo/tag.
    • Le immagini AVD, come system.img, vengono create in $ANDROID_PRODUCT_OUT. Per scoprire di più sulle immagini chiave, consulta la directory di sistema dell'AVD.
    • Consulta il file README per scoprire come vengono utilizzati i file binari dell'emulatore precompilati nell'albero Android per eseguire l'emulatore.

Crea un AVD per auto

L'aggiunta di un nuovo AVD per auto è quasi identica all'aggiunta di un nuovo dispositivo. Ad esempio, 1660554 crea un nuovo AVD avd_car.

Per creare un AVD per auto:

  1. Crea una società e una cartella dei dispositivi in base alle esigenze. Questo esempio utilizza $ANDROID_BUILD_TOP/device/google_car/avd_car.
  2. Crea il makefile del prodotto, avd_car.mk, che definisce come creare l'AVD.
  3. Crea una cartella del dispositivo, avd_car_device, in cui inserire BoardConfig.mk e source.properties.
  4. Aggiungi la nuova makefile e la nuova scelta lunch a AndroidProducts.mk.
  5. Per creare ed eseguire il nuovo AVD avd_car:
    . build/envsetup.sh && lunch acar-userdebug && m -j32 && emulator &
Ora puoi prototipare la maggior parte delle funzionalità HMI e delle app sul tuo nuovo AVD.

Comprimi un file ZIP dell'immagine AVD

Puoi comprimere e condividere il tuo AVD con altri o utilizzarlo su un altro computer. Utilizza emu_img_zip.mk per generare il file zip dell'immagine AVD:

  1. Dopo aver creato l'AVD, imposta emu_img_zip come target:
    m emu_img_zip
  2. Il file ZIP dell'immagine AVD, con il prefisso sdk-repo-linux-system-images, viene creato nella cartella denominata $ANDROID_PRODUCT_OUT.

Crea un kernel AVD

I kernel AVD sono simili ad altri kernel Android in quanto sono tutte immagini precompilate. In genere, puoi utilizzare le immagini precompilate del kernel goldfish standard così come sono da ogni release di Android.

Per sperimentare le modifiche al kernel:

  1. Esegui la seguente serie di istruzioni:
    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. Sostituisci il binario del kernel nel codebase in base al makefile dell'AVD. Ad esempio, device/generic/goldfish/board/emu64x/details.mk include device/generic/goldfish/board/kernel/x86_64.mk.

Il codice e la configurazione del kernel si trovano come segue:

Articolo Valore
Branch common-android11-5.4 (utilizzato in Android 11)
Manifest 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 nuovo profilo dispositivo

Per consentire agli utenti di creare un AVD specifico in Gestione AVD di Android Studio, consulta Creare e gestire dispositivi virtuali. I produttori di dispositivi possono definire le proprie specifiche hardware, ad esempio per le dimensioni dello schermo e i DPI, utilizzando un file devices.xml incluso nell'immagine AVD.

  • Ad esempio, consulta i profili dei dispositivi automobilistici in automotive.xml.
  • Per lo sviluppo o la prototipazione di HMI, è possibile aggiungere più dispositivi al file per la stessa immagine AVD.
  • Includi il file nel file ZIP dell'immagine AVD OEM nella cartella [ABI]. Ad esempio, come x86_64.
  • I produttori di dispositivi possono anche creare una skin dell'emulatore. Ad esempio, per definire pulsanti hardware aggiuntivi per un'esperienza utente più fedele. Ciò è utile non solo per i flussi di lavoro degli sviluppatori, ma anche per altre attività come la ricerca e la revisione dell'esperienza utente.

Crea il file XML dell'immagine AVD

I produttori di dispositivi possono creare un file XML dell'immagine AVD per Android Studio per scaricarlo.

  • Ad esempio, consulta il file XML dell'immagine AVD AAOS, sys-img2-1.xml.
  • I produttori di dispositivi possono definire il proprio contratto di licenza OEM AVD per i propri utenti target (utilizzando il sistema di onore), con la licenza per Android Emulator. Android Studio ottiene il consenso dell'utente quando viene inclusa una licenza di questo tipo.

Per creare l'immagine:

  1. Prepara un file ZIP dell'immagine AVD.
  2. Decomprimi ${ANDROID_PRODUCT_OUT}/sdk-repo-linux-system-images-*.zip.
  3. Aggiungi devices.xml alla cartella x86_64 e poi comprimi il file in un file ZIP. Ad esempio, come oem_avd_img_x86_64.zip.
  4. Aggiorna oem-sys-img2-1.xml.
  5. Aggiorna il nome, le dimensioni e lo shasum del file ZIP (i file XML di esempio sono forniti in tools).

Ad esempio, per ospitare l'AVD su Google Cloud Storage, consulta Creazione di bucket di archiviazione.

Per caricare e rendere pubblicamente accessibile l'AVD, consulta la pagina Rendere pubblici i dati:

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

Il formato dell'URL del componente aggiuntivo SDK dell'immagine AVD è: https://storage.googleapis.com/$BUCKET_NAME/oem-sys-img2-1.xml. Ad esempio, se BUCKET_NAME è aaos-avd, l'URL è: https://storage.googleapis.com/aaos-avd/oem-sys-img2-1.xml.

Condividere un'immagine AVD con gli utenti di Android Studio

Per consentire agli utenti di scaricare immagini AVD e utilizzare l'AVD tramite Android Studio, puoi fornire un file XML del componente aggiuntivo SDK. Per maggiori dettagli, vedi Aggiornare l'IDE e gli strumenti SDK.

Per scaricare l'AVD dalla rete:

  1. Ospita il file ZIP dell'immagine e i file XML su un server.
  2. Fornisci l'URL agli utenti target.
  3. (Facoltativo) Limita l'accesso in base al nome utente e alla password.

In alternativa, per velocizzare lo sviluppo, scarica l'AVD in una directory locale:

  1. Salva i file XML e tutti gli artefatti specificati nel file XML in una cartella (ad esempio, tutti i file ZIP delle immagini AVD) denominata ADDON_DIR.
  2. Specifica l'URL come file://$ADDON_DIR/oem-sys-img2-1.xml.