Dispositivo virtuale Android 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 per auto AOSP utilizzando il file precostruito

Per avviare e testare rapidamente utilizzando AOSP Car AVD predefinito, 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.

Avrai bisogno di Curl per usare questo script.

Per eseguire lo script:

  1. Copia il contenuto dello script launch_emu.sh nel tuo file locale, presupponendo che tu utilizzi launch_emu.sh come nome del file locale.
  2. Rendi eseguibile il tuo script locale. Ad esempio, esegui chmod +x ./launch_emu.sh .
  3. Controlla le opzioni disponibili eseguendo lo script con ./launch_emu.sh -h .
  4. Su 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 build, esci dal tuo account Google e riprova.
  5. Scarica e installa i file binari rilevanti per l'emulatore con l'ID build. Ad esempio, ./launch_emu.sh -i -a 11370359 .
  6. Successivamente, 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 pulire l'area di lavoro, quindi ripeti i passaggi 4 e 5 sopra.

Per specificare le opzioni delle opzioni di avvio della riga di comando dell'emulatore Android all'avvio dell'emulatore, utilizzare l'opzione -v . Ad esempio:

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

Costruisci un AVD per auto AOSP

Il processo per creare un AVD per auto AOSP è simile alla creazione di immagini AVD per un telefono (ad esempio, aosp_car_x86_64):

  1. Per configurare l'ambiente di sviluppo e identificare un ramo, vedere Strumenti di controllo del codice sorgente . Quindi rivedi Download dell'origine :
    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. Costruisci l'immagine AVD:
    . build/envsetup.sh && lunch sdk_car_x86_64-userdebug && m -j32
  3. Esegui l'immagine AVD (aggiungi ulteriori opzioni di avvio della riga di comando secondo necessità):
    emulator &

    Per esempio:

    Figura 1. Schermata dell'emulatore virtuale Android

    Note su questo processo:

    • Poiché il processo di creazione è lo stesso richiesto per creare Android per un dispositivo fisico, concedi un po' di tempo per scaricare il codice sorgente e quindi crearlo.
    • Per lavorare su altri rami, imposta $ANDROID_BRANCH su un altro ramo/tag .
    • Le immagini AVD, come system.img , sono create in $ANDROID_PRODUCT_OUT . Per ulteriori informazioni sulle immagini chiave, vedere Directory di sistema AVD .
    • Consulta il file README per scoprire come vengono utilizzati i file binari dell'emulatore predefiniti nell'albero Android per eseguire l'emulatore.

Crea un AVD per auto

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

Per creare un AVD per auto:

  1. Crea un'azienda e una cartella del dispositivo secondo necessità. Questo esempio utilizza $ANDROID_BUILD_TOP/device/google_car/avd_car .
  2. Crea il makefile del prodotto, avd_car.mk , che definisce come costruire l'AVD.
  3. Creare una cartella del dispositivo, avd_car_device , in cui contenere BoardConfig.mk e source.properties .
  4. Aggiungi il nuovo makefile e la nuova scelta lunch ad AndroidProducts.mk .
  5. Per creare ed eseguire il nuovo avd_car AVD:
    . build/envsetup.sh && lunch acar-userdebug && m -j32 && emulator &
Ora sei pronto per prototipare la maggior parte delle funzionalità HMI e delle app sul tuo nuovo AVD.

Comprimere un file zip 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 destinazione:
    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 .

Costruisci un kernel AVD

I kernel AVD sono simili ad altri kernel Android in quanto sono tutti immagini predefinite. Normalmente, puoi utilizzare le immagini predefinite del kernel goldfish standard così come sono presenti in ogni versione 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 nella codebase secondo il makefile 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
Ramo common-android11-5.4 (utilizzato in Android 11)
Manifesto kernel/manifest/common-android11-5.4
moduli-comuni/dispositivo-virtuale kernel/common-modules/virtual-device/android11-5.4
Nocciolo kernel/common/android11-5.4

Crea un nuovo profilo del dispositivo

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

  • Ad esempio, vedere i profili dei dispositivi automobilistici in automotive.xml .
  • Per lo sviluppo o la prototipazione HMI, è possibile aggiungere più dispositivi al file per la stessa immagine AVD.
  • Includere 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 per l'emulatore . Ad esempio, per definire pulsanti hardware aggiuntivi per una UX più fedele. Ciò non è utile solo per i flussi di lavoro degli sviluppatori, ma anche per altre attività come la ricerca e la revisione della UX.

Creare il file XML dell'immagine AVD

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

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

Per creare l'immagine:

  1. Preparare un file zip immagine AVD.
  2. Decomprimere ${ANDROID_PRODUCT_OUT}/sdk-repo-linux-system-images-*.zip .
  3. Aggiungi devices.xml alla cartella x86_64 e quindi 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, la dimensione e lo shasum del file zip (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 l'AVD accessibile al pubblico, vedere 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 immagine AVD è il seguente: 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 .

Condivisione di un'immagine AVD con gli utenti di Android Studio

Affinché i tuoi utenti possano scaricare immagini AVD e utilizzare il tuo AVD con Android Studio, puoi fornire un file XML del componente aggiuntivo SDK. Per maggiori dettagli, consulta Aggiornamento degli strumenti IDE e SDK .

Per scaricare l'AVD dalla rete:

  1. Ospitare il file zip dell'immagine e i file XML su un server.
  2. Fornisci l'URL agli utenti target.
  3. ( Facoltativo ) Limita l'accesso tramite nome utente e password.

In alternativa, per accelerare lo sviluppo, scaricare l'AVD in una directory locale:

  1. Salvare 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. Specificare l'URL come file://$ADDON_DIR/oem-sys-img2-1.xml .
,

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 per auto AOSP utilizzando il file precostruito

Per avviare e testare rapidamente utilizzando AOSP Car AVD predefinito, 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.

Avrai bisogno di Curl per usare questo script.

Per eseguire lo script:

  1. Copia il contenuto dello script launch_emu.sh nel tuo file locale, presupponendo che tu utilizzi launch_emu.sh come nome del file locale.
  2. Rendi eseguibile il tuo script locale. Ad esempio, esegui chmod +x ./launch_emu.sh .
  3. Controlla le opzioni disponibili eseguendo lo script con ./launch_emu.sh -h .
  4. Su 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 build, esci dal tuo account Google e riprova.
  5. Scarica e installa i file binari rilevanti per l'emulatore con l'ID build. Ad esempio, ./launch_emu.sh -i -a 11370359 .
  6. Successivamente, 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 pulire l'area di lavoro, quindi ripeti i passaggi 4 e 5 sopra.

Per specificare le opzioni delle opzioni di avvio della riga di comando dell'emulatore Android all'avvio dell'emulatore, utilizzare l'opzione -v . Ad esempio:

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

Costruisci un AVD per auto AOSP

Il processo per creare un AVD per auto AOSP è simile alla creazione di immagini AVD per un telefono (ad esempio, aosp_car_x86_64):

  1. Per configurare l'ambiente di sviluppo e identificare un ramo, vedere Strumenti di controllo del codice sorgente . Quindi rivedi Download dell'origine :
    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. Costruisci l'immagine AVD:
    . build/envsetup.sh && lunch sdk_car_x86_64-userdebug && m -j32
  3. Esegui l'immagine AVD (aggiungi ulteriori opzioni di avvio della riga di comando secondo necessità):
    emulator &

    Per esempio:

    Figura 1. Schermata dell'emulatore virtuale Android

    Note su questo processo:

    • Poiché il processo di creazione è lo stesso richiesto per creare Android per un dispositivo fisico, concedi un po' di tempo per scaricare il codice sorgente e quindi crearlo.
    • Per lavorare su altri rami, imposta $ANDROID_BRANCH su un altro ramo/tag .
    • Le immagini AVD, come system.img , sono create in $ANDROID_PRODUCT_OUT . Per ulteriori informazioni sulle immagini chiave, vedere Directory di sistema AVD .
    • Consulta il file README per scoprire come vengono utilizzati i file binari dell'emulatore predefiniti nell'albero Android per eseguire l'emulatore.

Crea un AVD per auto

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

Per creare un AVD per auto:

  1. Crea un'azienda e una cartella del dispositivo secondo necessità. Questo esempio utilizza $ANDROID_BUILD_TOP/device/google_car/avd_car .
  2. Crea il makefile del prodotto, avd_car.mk , che definisce come costruire l'AVD.
  3. Creare una cartella del dispositivo, avd_car_device , in cui contenere BoardConfig.mk e source.properties .
  4. Aggiungi il nuovo makefile e la nuova scelta lunch ad AndroidProducts.mk .
  5. Per creare ed eseguire il nuovo avd_car AVD:
    . build/envsetup.sh && lunch acar-userdebug && m -j32 && emulator &
Ora sei pronto per prototipare la maggior parte delle funzionalità HMI e delle app sul tuo nuovo AVD.

Comprimere un file zip 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 destinazione:
    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 .

Costruisci un kernel AVD

I kernel AVD sono simili ad altri kernel Android in quanto sono tutti immagini predefinite. Normalmente, puoi utilizzare le immagini predefinite del kernel goldfish standard così come sono presenti in ogni versione 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 nella codebase secondo il makefile 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
Ramo common-android11-5.4 (utilizzato in Android 11)
Manifesto kernel/manifest/common-android11-5.4
moduli-comuni/dispositivo-virtuale kernel/common-modules/virtual-device/android11-5.4
Nocciolo kernel/common/android11-5.4

Crea un nuovo profilo del dispositivo

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

  • Ad esempio, vedere i profili dei dispositivi automobilistici in automotive.xml .
  • Per lo sviluppo o la prototipazione HMI, è possibile aggiungere più dispositivi al file per la stessa immagine AVD.
  • Includere 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 per l'emulatore . Ad esempio, per definire pulsanti hardware aggiuntivi per una UX più fedele. Ciò non è utile solo per i flussi di lavoro degli sviluppatori, ma anche per altre attività come la ricerca e la revisione della UX.

Creare il file XML dell'immagine AVD

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

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

Per creare l'immagine:

  1. Preparare un file zip immagine AVD.
  2. Decomprimere ${ANDROID_PRODUCT_OUT}/sdk-repo-linux-system-images-*.zip .
  3. Aggiungi devices.xml alla cartella x86_64 e quindi 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, la dimensione e lo shasum del file zip (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 l'AVD accessibile al pubblico, vedere 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 immagine AVD è il seguente: 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 .

Condivisione di un'immagine AVD con gli utenti di Android Studio

Affinché i tuoi utenti possano scaricare immagini AVD e utilizzare il tuo AVD con Android Studio, puoi fornire un file XML del componente aggiuntivo SDK. Per maggiori dettagli, consulta Aggiornamento degli strumenti IDE e SDK .

Per scaricare l'AVD dalla rete:

  1. Ospitare il file zip dell'immagine e i file XML su un server.
  2. Fornisci l'URL agli utenti target.
  3. ( Facoltativo ) Limita l'accesso tramite nome utente e password.

In alternativa, per accelerare lo sviluppo, scaricare l'AVD in una directory locale:

  1. Salvare 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. Specificare l'URL come file://$ADDON_DIR/oem-sys-img2-1.xml .