Usa dispositivi virtuali Android Emulator

Puoi utilizzare l'emulatore Android per creare emulazioni di dispositivi Android su cui vengono eseguite le tue immagini di sistema Android personalizzate. Inoltre, puoi aggiungere il supporto multi-display alle emulazioni di Android Emulator.

Architettura dell'emulatore Android

L'emulatore Android esegue il sistema operativo Android in una macchina virtuale chiamata dispositivo virtuale Android (AVD). Ogni AVD contiene l'intero software stack Android e funziona come se fosse su un dispositivo fisico. La Figura 1 illustra l'architettura di alto livello di Android Emulator. Per ulteriori informazioni sull'emulatore, consulta Eseguire app nell'emulatore Android.

Architettura dell'emulatore Android.

Figura 1. Architettura dell'emulatore Android.

Creare immagini AVD

Ogni AVD include un'immagine di sistema Android, che viene eseguita in quell'AVD. AVD Manager include alcune immagini di sistema. Inoltre, puoi creare immagini di sistema AVD personalizzate dal codice sorgente e creare emulazioni dei dispositivi per eseguirle.

Per compilare ed eseguire un'immagine di sistema AVD:

  1. Scarica il codice sorgente di Android:

    mkdir aosp-main; cd aosp-main
    repo init -u
    repo sync -j24
    

Se vuoi compilare altre versioni di Android, puoi trovare i nomi dei relativi branch nel repository pubblico di Android. Sono mappati a Nomi in codice, tag e numeri di build Android.

  1. Crea un'immagine di sistema AVD. Si tratta della stessa procedura utilizzata per creare un'immagine del sistema di un dispositivo Android. Ad esempio, per creare un AVD x86 a 64 bit:

    source ./build/envsetup.sh
    lunch sdk_phone_x86_64
    make -j32
    
  2. Esegui l'immagine di sistema AVD nell'emulatore Android:

    emulator
    

Per ulteriori dettagli sull'esecuzione dell'emulatore, consulta Opzioni di avvio della riga di comando. La Figura 2 mostra un esempio di emulatore Android che esegue un AVD:

Emulatore Android che esegue un AVD.

Figura 2. Emulatore Android che esegue un AVD.

Condividere immagini di sistema AVD per consentire ad altri di utilizzarle con Android Studio

Segui queste istruzioni per condividere le immagini di sistema AVD con altri utenti. Possono utilizzare le immagini di sistema AVD con Android Studio per sviluppare e testare le app.

  1. Crea altri pacchetti sdk e sdk_repo:

    Per Android 13 e versioni successive, utilizza il comando emu_img_zip:

    $ make emu_img_zip
    

    Verrà generato un file sdk-repo-linux-system-images-eng.[username]].zip.

    Per Android 12 e versioni precedenti, utilizza il comando sdk_repo:

    $ make -j32 sdk sdk_repo
    

    Il comando make sdk sdk_repo crea due file in aosp-main/out/host/linux-x86/sdk/sdk_phone_x86:

    • sdk-repo-linux-system-images-eng.[username].zip
    • repo-sys-img.xml
  2. Carica il file sdk-repo-linux-system-images-eng.[username].zip in un luogo accessibile ai tuoi utenti e ottieni il relativo URL da utilizzare come URL immagine di sistema AVD.

  3. Per Android 12 e versioni precedenti, modifica repo-sys-img.xml di conseguenza:

    • Aggiorna <sdk:url> con l'URL dell'immagine di sistema AVD.
    • Consulta sdk-sys-img-03.xsd per scoprire altri aggiornamenti al file.
    • Carica repo-sys-img.xml in un luogo accessibile ai tuoi utenti e ottieni il relativo URL da utilizzare come URL del sito di aggiornamento personalizzato.

Per utilizzare un'immagine AVD personalizzata, procedi nel seguente modo in SDK Manager:

  1. Aggiungi l'URL del sito di aggiornamento personalizzato come sito di aggiornamento dell'SDK.

    L'immagine di sistema AVD personalizzata viene aggiunta alla pagina Immagini di sistema.

  2. Crea un AVD scaricando e selezionando l'immagine di sistema AVD personalizzata.

Aggiungere il supporto di più display

Android 10 migliora il multi-display per supportare meglio più casi d'uso, come la modalità Auto e desktop. Anche Android Emulator supporta l'emulazione multi-display. In questo modo puoi creare un ambiente multi-display specifico senza configurare l'hardware reale.

Puoi aggiungere il supporto di più display a un AVD apportando le seguenti modifiche o scegliendo tra questi CL.

  • Aggiungi il fornitore multidisplay alla build aggiungendo queste righe al filebuild/target/product/sdk_phone_x86.mk:

    PRODUCT_ARTIFACT_PATH_REQUIREMENT_WHITELIST := \
        system/lib/libemulator_multidisplay_jni.so \
        system/lib64/libemulator_multidisplay_jni.so \
        system/priv-app/MultiDisplayProvider/MultiDisplayProvider.apk \
    PRODUCT_PACKAGES += MultiDisplayProvider
    
  • Attiva il flag della funzionalità multi-display aggiungendo questa riga al filedevice/generic/goldfish/data/etc/advancedFeatures.ini:

    MultiDisplay = on
    

Puoi trovare le ultime funzionalità dell'emulatore e le informazioni sulle release nelle seguenti fonti: