Utilizzare i dispositivi virtuali di Android Emulator

Puoi utilizzare Android Emulator per creare emulazioni di dispositivi Android che eseguono 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 Android Virtual Device (AVD). Ogni AVD contiene lo stack software Android completo e viene eseguito come se si trovasse su un dispositivo fisico. La Figura 1 illustra l'architettura di alto livello di Android Emulator. Per saperne di più sull'emulatore, vedi Eseguire app sull'emulatore Android.

Architettura dell'emulatore Android.

Figura 1. Architettura dell'emulatore Android.

Crea immagini AVD

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

Per creare ed eseguire un'immagine di sistema AVD:

  1. Scarica l'origine Android:

    mkdir aosp-android-latest-release; cd aosp-android-latest-release
    repo init -u
    repo sync -j24

Se vuoi creare altre versioni di Android, puoi trovare i nomi dei rami nel repository Android pubblico. Sono mappati su Nomi in codice, tag e numeri build di Android.

  1. Crea un'immagine di sistema AVD. Questa procedura è identica a quella per creare un'immagine di sistema per un dispositivoAndroid. 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 in Android Emulator:

    emulator

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

Emulatore Android che esegue un AVD.

Figura 2. Emulatore Android che esegue un AVD.

Condividere immagini di sistema AVD affinché altri le utilizzino con Android Studio

Segui queste istruzioni per condividere le immagini di sistema AVD con altri. 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
    

    Viene 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-android-latest-release/out/host/linux-x86/sdk/sdk_phone_x86:

    • sdk-repo-linux-system-images-eng.[username].zip
    • repo-sys-img.xml
  2. Ospita il file sdk-repo-linux-system-images-eng.[username].zip in una posizione 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 di più sugli altri aggiornamenti del file.
    • Ospita repo-sys-img.xml in una posizione accessibile ai tuoi utenti e ottieni il relativo URL da utilizzare come URL 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 SDK.

    In questo modo, 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 multi-display

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

Puoi aggiungere il supporto multi-display a un AVD apportando le seguenti modifiche oppure selezionando le modifiche da questi CL.

  • Aggiungi il fornitore multi-display alla build aggiungendo queste righe al file build/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 file device/generic/goldfish/data/etc/advancedFeatures.ini:

    MultiDisplay = on
    

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