Verwendung virtueller Android-Emulator-Geräte

Mit dem Android-Emulator können Sie Emulationen von Android-Geräten erstellen, auf denen Ihre eigenen benutzerdefinierten Android-Systemabbilder ausgeführt werden. Sie können auch Ihre benutzerdefinierten Android-Systemabbilder teilen, damit andere Benutzer Emulationen davon ausführen können. Darüber hinaus können Sie den Android-Emulator-Emulationen Multi-Display-Unterstützung hinzufügen.

Android-Emulator-Architektur

Mit dem Android-Emulator können Sie Emulationen von Android-Geräten auf Windows-, macOS- oder Linux-Rechnern ausführen. Der Android-Emulator führt das Android-Betriebssystem in einer virtuellen Maschine aus, die als Android Virtual Device (AVD) bezeichnet wird. Die AVD enthält den vollständigen Android-Software-Stack und läuft wie auf einem physischen Gerät. Abbildung 1 ist ein Diagramm der High-Level-Architektur des Android-Emulators. Weitere Informationen zum Emulator finden Sie unter Ausführen von Apps auf dem Android-Emulator .

Android-Emulator-Architektur

Abbildung 1. Android-Emulator-Architektur

Erstellen von AVD-Bildern

Jede AVD enthält ein Android-System-Image, das in dieser AVD ausgeführt wird. Der AVD-Manager enthält einige Systemabbilder. Und Sie können benutzerdefinierte AVD-Systemabbilder aus Ihrem Quellcode erstellen und Geräteemulationen erstellen, um diese auszuführen.

So erstellen Sie ein AVD-Systemabbild und führen es aus:

  1. Laden Sie die Android-Quelle herunter:

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

    Wenn Sie andere Android-Versionen erstellen möchten, finden Sie deren Zweignamen im öffentlichen Android-Repository . Sie sind Android-Codenamen, Tags und Build-Nummern zugeordnet.

  2. Erstellen Sie ein AVD-System-Image. Dies ist der gleiche Vorgang wie das Erstellen eines Android- Gerätesystem-Images. So erstellen Sie beispielsweise eine x86-32-Bit-AVD:

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

    Wenn Sie lieber eine x86-64-Bit-AVD erstellen möchten, führen Sie lunch für das 64-Bit-Ziel aus:

    lunch sdk_phone_x86_64
    
  3. Führen Sie das AVD-System-Image im Android-Emulator aus:

    emulator
    

Weitere Informationen zum Ausführen des Emulators finden Sie in den Befehlszeilen-Startoptionen . Abbildung 2 zeigt ein Beispiel für den Android-Emulator, auf dem ein AVD ausgeführt wird.

Android-Emulator, auf dem ein AVD ausgeführt wird

Abbildung 2. Android-Emulator, auf dem ein AVD ausgeführt wird

Teilen von AVD-Systembildern für andere zur Verwendung mit Android Studio

Befolgen Sie diese Anweisungen, um Ihre AVD-Systembilder mit anderen zu teilen. Sie können Ihre AVD-Systembilder mit Android Studio verwenden, um Apps zu entwickeln und zu testen.

  1. Erstellen Sie zusätzliche sdk und sdk_repo -Pakete:

    Verwenden Sie für Android 13 und höher den Befehl emu_img_zip :

    $ make emu_img_zip
    

    Dadurch wird eine sdk-repo-linux-system-images-eng.[username]].zip Datei generiert.

    Verwenden Sie für Android 12 und niedriger den Befehl sdk_repo :

    $ make -j32 sdk sdk_repo
    

    Der Befehl make sdk sdk_repo erstellt zwei Dateien unter aosp-main/out/host/linux-x86/sdk/sdk_phone_x86 :

    • sdk-repo-linux-system-images-eng.[username].zip
    • repo-sys-img.xml
  2. Hosten Sie die Datei sdk-repo-linux-system-images-eng.[username].zip an einem für Ihre Benutzer zugänglichen Ort und rufen Sie ihre URL ab, um sie als AVD-System-Image-URL zu verwenden.

  3. Bearbeiten Sie für Android 12 und niedriger repo-sys-img.xml entsprechend:

    • Aktualisieren Sie <sdk:url> auf die URL Ihres AVD-Systembilds .
    • Weitere Informationen zu weiteren Aktualisierungen der Datei finden Sie unter sdk-sys-img-03.xsd .
    • Hosten Sie repo-sys-img.xml an einem für Ihre Benutzer zugänglichen Ort und rufen Sie die URL ab, die Sie als benutzerdefinierte Update-Site-URL verwenden können.

Um ein benutzerdefiniertes AVD-Image zu verwenden, gehen Sie im SDK-Manager wie folgt vor:

  1. Fügen Sie die benutzerdefinierte Update-Site-URL als SDK-Update-Site hinzu .

    Dadurch wird Ihr benutzerdefiniertes AVD-Systemabbild zur Seite „Systemabbilder“ hinzugefügt.

  2. Erstellen Sie eine AVD , indem Sie das benutzerdefinierte AVD-Systemabbild herunterladen und auswählen.

Multi-Display-Unterstützung hinzufügen

Android 10 verbessert Multi-Display (MD), um mehr Anwendungsfälle besser zu unterstützen, wie zum Beispiel den automatischen und Desktop-Modus. Der Android-Emulator unterstützt auch die Multi-Display-Emulation. So können Sie eine spezifische Multi-Display-Umgebung erstellen, ohne die echte Hardware einzurichten.

Sie können einer AVD Multi-Display-Unterstützung hinzufügen, indem Sie die folgenden Änderungen vornehmen oder aus diesen CLs Rosinen auswählen.

  • Fügen Sie dem Build einen Multi-Display-Anbieter hinzu, indem Sie diese Zeilen zur Datei build/target/product/sdk_phone_x86.mk hinzufügen:

    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
    
  • Aktivieren Sie das Multi-Display-Feature-Flag, indem Sie diese Zeile zur Datei device/generic/goldfish/data/etc/advancedFeatures.ini hinzufügen:

    MultiDisplay = on
    

Die neuesten Emulatorfunktionen und Versionsinformationen finden Sie in den folgenden Quellen: