Utilizzo di dispositivi virtuali dell'emulatore Android

Puoi utilizzare Android Emulator per creare emulazioni di dispositivi Android che eseguono le tue immagini di sistema Android personalizzate. Puoi anche condividere le tue immagini personalizzate del sistema Android in modo che altre persone possano eseguirne le emulazioni. Inoltre, puoi aggiungere il supporto multi-display alle emulazioni dell'emulatore Android.

Architettura dell'emulatore Android

Android Emulator ti consente di eseguire emulazioni di dispositivi Android su macchine Windows, macOS o Linux. L'emulatore Android esegue il sistema operativo Android in una macchina virtuale chiamata dispositivo virtuale Android (AVD). L'AVD contiene l'intero stack software Android , e funziona come se fosse su un dispositivo fisico. La Figura 1 è un diagramma dell'architettura di alto livello dell'emulatore Android. Per ulteriori informazioni su l'emulatore, vedere eseguire applicazioni sull'emulatore Android .

Architettura dell'emulatore Android

Architettura Figura 1. emulatore Android

Costruire immagini AVD

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

Per creare ed eseguire un'immagine di sistema AVD:

  1. Scarica la fonte Android:

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

    Se si vuole costruire altre versioni di Android, è possibile trovare i loro nomi filiali nel repository Android pubblico . Essi mappano Android Nomi in codice, tag e numeri di build .

  2. Crea un'immagine del sistema AVD. Questo è lo stesso processo come costruire un androide immagine del sistema del dispositivo. Ad esempio, per creare un AVD x86 a 32 bit:

    mkdir aosp-master; cd aosp-master
    source ./build/envsetup.sh
    lunch sdk_phone_x86
    make -j32
    

    Se si preferisce costruire un x86 a 64-bit AVD, eseguire lunch per il target a 64 bit:

    lunch sdk_phone_x86_64
    
  3. Esegui l'immagine del sistema AVD nell'emulatore Android:

    emulator
    

Vedere l'opzioni della riga di comando di avvio per ulteriori dettagli su esecuzione l'emulatore. La Figura 2 mostra un esempio dell'emulatore Android che esegue un AVD.

Emulatore Android che esegue un AVD

Figura 2. Android Emulatore esegue un intervallo AV

Condivisione delle immagini del sistema AVD affinché altri possano utilizzarle con Android Studio

Segui queste istruzioni per condividere le immagini del tuo sistema AVD con altri. Essi possono utilizzare le immagini di sistema AVD con Android Studio per sviluppare e applicazioni di test.

  1. Fare ulteriori sdk e sdk_repo pacchetti:

    $ make -j32 sdk sdk_repo
    

    Questo crea due file sotto aosp-master/out/host/linux-x86/sdk/sdk_phone_x86 :

    • sdk-repo-linux-system-images-eng.[username].zip
    • repo-sys-img.xml
  2. Ospitare il file sdk-repo-linux-system-images-eng.[username].zip da qualche parte accessibile agli utenti, e ottenere l'URL da utilizzare come URL immagine AVD sistema.

  3. Modifica repo-sys-img.xml di conseguenza:

    • Aggiornamento <sdk:url> al vostro URL immagine AVD sistema.
    • Vedi SDK-sys-img-03.xsd Per informazioni su altri aggiornamenti per il file.
  4. Host repo-sys-img.xml qualche parte accessibile agli utenti, e ottenere l'URL da utilizzare come l'aggiornamento URL del sito personalizzato.

Per utilizzare un'immagine AVD personalizzata, procedi come segue in SDK Manager:

  1. Aggiungere l'aggiornamento URL del sito personalizzato come un sito di aggiornamento SDK .

    Questo aggiunge la tua immagine di sistema AVD personalizzata alla pagina Immagini di sistema.

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

Aggiunta del supporto multischermo

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

È possibile aggiungere il supporto multi-display a un AVD apportando le seguenti modifiche, o cherry picking da queste CL .

  • Aggiungere fornitore multi-display per la compilazione con l'aggiunta di queste righe al file di 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
    
  • Attivare il flag di funzionalità multi-display con l'aggiunta di questa riga al file di device/generic/goldfish/data/etc/advancedFeatures.ini :

    MultiDisplay = on
    

Puoi trovare le ultime funzionalità dell'emulatore e le informazioni sulla versione dalle seguenti fonti: