Virtuelle Geräte des Android Emulators verwenden

Mit dem Android Emulator können Sie Emulationen von Android-Geräten erstellen, auf denen Ihre eigenen benutzerdefinierten Android-System-Images ausgeführt werden. Außerdem können Sie Emulationen im Android-Emulator Unterstützung für mehrere Displays hinzufügen.

Architektur des Android Emulators

Der Android Emulator führt das Android-Betriebssystem auf einer virtuellen Maschine aus, die als Android Virtual Device (AVD) bezeichnet wird. Jedes AVD enthält den vollständigen Android-Softwarestack und wird so ausgeführt, als wäre es auf einem physischen Gerät. Abbildung 1 zeigt die allgemeine Architektur des Android-Emulators. Weitere Informationen zum Emulator finden Sie unter Apps im Android-Emulator ausführen.

Android Emulator-Architektur.

Abbildung 1: Android Emulator-Architektur.

AVD-Images erstellen

Jedes AVD enthält ein Android-System-Image, das in diesem AVD ausgeführt wird. Der AVD Manager enthält einige System-Images. Außerdem können Sie benutzerdefinierte AVD-System-Images aus Ihrem Quellcode erstellen und Geräteemulationen erstellen, um sie auszuführen.

So erstellen und führen Sie ein AVD-System-Image aus:

  1. Android-Quellcode herunterladen:

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

Wenn Sie andere Android-Versionen erstellen möchten, finden Sie die entsprechenden Zweignamen im öffentlichen Android-Repository. Sie entsprechen den Android-Codenamen, ‑Tags und ‑Build-Nummern.

  1. AVD-System-Image erstellen Das ist derselbe Vorgang wie beim Erstellen eines System-Images für ein Android-Gerät. So erstellen Sie beispielsweise ein x86-64-Bit-AVD:

    source ./build/envsetup.sh
    lunch sdk_phone_x86_64
    make -j32
  2. Führen Sie das AVD-System-Image im Android Emulator aus:

    emulator

Weitere Informationen zum Ausführen des Emulators finden Sie unter Befehlszeilen-Startoptionen. Abbildung 2 zeigt ein Beispiel für den Android-Emulator, der ein AVD ausführt:

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

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

AVD-System-Images für andere zur Verwendung mit Android Studio freigeben

Folgen Sie dieser Anleitung, um Ihre AVD-System-Images mit anderen zu teilen. Sie können Ihre AVD-Systemabbilder 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
    

    Mit dem Befehl make sdk sdk_repo werden zwei Dateien unter aosp-android-latest-release/out/host/linux-x86/sdk/sdk_phone_x86 erstellt:

    • 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 Nutzer zugänglichen Ort und rufen Sie die URL ab, die Sie als AVD System Image URL verwenden können.

  3. Bei Android 12 und niedriger bearbeiten Sie repo-sys-img.xml entsprechend:

    • Aktualisieren Sie <sdk:url> auf die URL des AVD-System-Image.
    • Informationen zu anderen Aktualisierungen der Datei finden Sie unter sdk-sys-img-03.xsd.
    • Hosten Sie repo-sys-img.xml an einem für Ihre Nutzer zugänglichen Ort und rufen Sie die URL ab, die Sie als Custom Update Site URL verwenden möchten.

So verwenden Sie ein benutzerdefiniertes AVD-Image im SDK Manager:

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

    Dadurch wird Ihr benutzerdefiniertes AVD-Systemimage der Seite „System Images“ hinzugefügt.

  2. AVD erstellen, indem Sie das benutzerdefinierte AVD-System-Image herunterladen und auswählen.

Multi-Display-Unterstützung hinzufügen

Android 10 verbessert die Unterstützung mehrerer Displays, um mehr Anwendungsfälle wie den Auto- und den Desktopmodus zu unterstützen. Der Android-Emulator unterstützt auch die Emulation mehrerer Displays. So können Sie eine bestimmte Umgebung mit mehreren Displays erstellen, ohne die tatsächliche Hardware einrichten zu müssen.

Sie können einem AVD Unterstützung für mehrere Displays hinzufügen, indem Sie die folgenden Änderungen vornehmen oder diese CLs cherry-picken.

  • Fügen Sie den Anbieter für mehrere Displays dem Build hinzu, indem Sie der Datei build/target/product/sdk_phone_x86.mk die folgenden Zeilen 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 Feature-Flag für mehrere Displays, indem Sie diese Zeile in die Datei device/generic/goldfish/data/etc/advancedFeatures.ini einfügen:

    MultiDisplay = on
    

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