Android Virtual Device come piattaforma di sviluppo

Per utilizzare i dispositivi virtuali Android (AVD), Android Emulator supporta un'interfaccia utente grafica (GUI) e un'interfaccia a riga di comando (CLI). Seleziona il flusso di lavoro ottimale per il tuo ambiente.

Avvia un AVD AOSP Car utilizzando un'app predefinita

Per avviare e testare rapidamente l'utilizzo di AVD AOSP Car precompilato, utilizza uno script open source per scaricare e avviare una build dell'emulatore da ci.android.com. Lo script è stato testato su macOS e Linux.

Per utilizzare questo script, devi avere Curl.

Per eseguire lo script:

  1. Copia i contenuti dello script launch_emu.sh nel file locale, supponendo che tu utilizzi launch_emu.sh come nome del file locale.
  2. Rendi eseguibile lo script locale. Ad esempio, esegui chmod +x ./launch_emu.sh.
  3. Controlla le opzioni disponibili eseguendo lo script con ./launch_emu.sh -h.
  4. In ci.android.com, vai al ramo aosp-main-throttled e seleziona una build recente in cui sdk_car_x86_64 è verde. Ad esempio, 11370359. Se non vedi le informazioni sulla compilazione, esci dal tuo Account Google e riprova.
  5. Scarica e installa i file binari pertinenti all'emulatore con l'ID build. Ad esempio, ./launch_emu.sh -i -a 11370359.
  6. Dopodiché, puoi utilizzare ./launch_emu.sh per avviare l'emulatore scaricato e installato (non utilizzare le opzioni -i o -a).
  7. Per scaricare e installare un altro ID build, esegui ./launch_emu.sh -c per ripulire lo spazio di lavoro e poi ripeti i passaggi 4 e 5 precedenti.

Per specificare le opzioni di avvio a riga di comando dell'emulatore Android quando lo avvii, utilizza l'opzione -v. Ad esempio:

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

Creare un AVD AOSP Car

La procedura per creare un AVD 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. Quindi 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. Schermata dell'emulatore virtuale Android

    Note su questa procedura:

    • Poiché il processo di compilazione è lo stesso necessario per compilare Android per un dispositivo fisico, attendi un po' di tempo per scaricare il codice sorgente e compilarlo.
    • Per lavorare su altri branch, imposta $ANDROID_BRANCH su un altro branch/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 AVD.
    • Consulta il file README per scoprire come vengono utilizzati i file binari dell'emulatore precompilato nell'albero Android per eseguire l'emulatore.

Creare un AVD di auto

L'aggiunta di un nuovo AVD auto è quasi identica all'aggiunta di un nuovo dispositivo. Ad esempio, 1660554 crea una nuova durata di visualizzazione media avd_car.

Per creare un AVD per auto:

  1. Crea una cartella per l'azienda e una per il dispositivo, se necessario. Questo esempio utilizza $ANDROID_BUILD_TOP/device/google_car/avd_car.
  2. Crea il file make del prodotto, avd_car.mk, che definisce come compilare l'AVD.
  3. Crea una cartella del dispositivo, avd_car_device, in cui contenere BoardConfig.mk e source.properties.
  4. Aggiungi la nuova scelta makefile e lunch a AndroidProducts.mk.
  5. Per compilare ed eseguire il nuovo AVD avd_car:
    . build/envsetup.sh && lunch acar-userdebug && m -j32 && emulator &
Ora puoi creare il prototipo della maggior parte delle funzionalità dell'HMI e dell'app sul nuovo AVD.

Impacchettare un file ZIP dell'immagine AVD

Puoi pacchettizzare e condividere l'AVD con altri utenti 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, preceduto da sdk-repo-linux-system-images, viene creato nella cartella denominata $ANDROID_PRODUCT_OUT.

Creare un kernel AVD

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

Per eseguire esperimenti sulle 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 file binario del kernel nella base di codice in base al file make dell'AVD. Ad esempio, x86_64-vendor.mk include x86_64-kernel.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
Scoppiettio kernel/common/android11-5.4

Creare un nuovo profilo del 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 le dimensioni dello schermo e il DPI, tramite l'utilizzo di un file devices.xml incluso nell'immagine AVD.

  • Ad esempio, consulta i profili dei dispositivi per auto e motori in automotive.xml.
  • Per lo sviluppo o la prototipazione dell'interfaccia 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. Questo non è utile solo per i flussi di lavoro degli sviluppatori, ma anche per altre attività come la ricerca e la revisione UX.

Crea il file XML dell'immagine AVD

I produttori di dispositivi possono creare un file XML immagine AVD per consentirne il download da parte di Android Studio.

  • 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 AVD OEM per gli utenti di destinazione (utilizzando il sistema di onestà), con la licenza per l'emulatore Android. Android Studio ottiene il consenso dell'utente quando è 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 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 il valore shasum del file ZIP (i file XML di esempio sono forniti in tools).

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

Per caricare l'AVD e renderlo accessibile pubblicamente, 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

Affinché gli utenti possano scaricare le immagini AVD e utilizzare l'AVD tramite Android Studio, puoi fornire un file XML del componente aggiuntivo SDK. Per maggiori dettagli, consulta Aggiornare gli strumenti IDE e 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 di destinazione.
  3. (Facoltativo) Limita l'accesso in base a nome utente e password.

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

  1. Salva i file XML e tutti gli elementi 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.