Virtuelle Android-Emulator-Geräte 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 Android-Emulator-Emulationen die Unterstützung für mehrere Displays hinzufügen.

Architektur des Android-Emulators

Mit dem Android-Emulator können Sie Android-Emulatoren ausführen, um das Android-Betriebssystem in einer virtuellen Maschine, einem virtuellen Android-Gerät (AVD), auszuführen. Jedes AVD enthält den vollständigen Android-Softwarestack und wird so ausgeführt, als befände es sich 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. Architektur des Android-Emulators

AVD-Images erstellen

Jede AVD enthält ein Android-System-Image, das in dieser 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-main; cd aosp-main
    repo init -u
    repo sync -j24

Wenn Sie andere Android-Versionen erstellen möchten, finden Sie die entsprechenden Branch-Namen im öffentlichen Android-Repository. Sie sind Android-Codenamen, -Tags und -Build-Nummern zugeordnet.

  1. AVD-Systemimage erstellen Der Vorgang entspricht dem Erstellen eines System-Images für Android-Geräte. So erstellen Sie beispielsweise eine x86-64-Bit-AVD:

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

    emulator

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

Android-Emulator, in dem eine AVD ausgeführt wird

Abbildung 2. Android-Emulator, in dem eine AVD ausgeführt wird

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

Folgen Sie dieser Anleitung, um Ihre AVD-Systemimages für andere freizugeben. 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
    

    Mit dem Befehl make sdk sdk_repo werden unter aosp-main/out/host/linux-x86/sdk/sdk_phone_x86 zwei Dateien 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 als AVD-Systemabbild-URL verwendet werden soll.

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

    • Aktualisieren Sie <sdk:url> auf die URL des AVD-System-Images.
    • Weitere Informationen zu anderen Änderungen an 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 URL der benutzerdefinierten Update-Website verwenden möchten.

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

  1. Fügen Sie die URL der benutzerdefinierten Update-Website als SDK-Update-Website hinzu.

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

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

Unterstützung für mehrere Displays hinzufügen

Unter Android 10 wurde Multi-Display optimiert, um mehr Anwendungsfälle wie den automatischen und den Desktopmodus zu unterstützen. Der Android-Emulator unterstützt auch die Multi-Display-Emulation. So können Sie eine bestimmte Multi-Display-Umgebung erstellen, ohne die tatsächliche Hardware einzurichten.

Sie können einer AVD Multi-Display-Unterstützung hinzufügen, indem Sie die folgenden Änderungen vornehmen oder diese Befehlszeilen verwenden.

  • Fügen Sie dem Build den Multi-Display-Anbieter hinzu, indem Sie der Datei build/target/product/sdk_phone_x86.mk diese 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 Funktions-Flag „Multi-Display“, indem Sie der Datei device/generic/goldfish/data/etc/advancedFeatures.ini diese Zeile hinzufügen:

    MultiDisplay = on
    

Die neuesten Emulatorfunktionen und Versionsinformationen finden Sie aus folgenden Quellen: