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-Emulatoren die Unterstützung für mehrere Displays hinzufügen.
Architektur des Android-Emulators
Der Android-Emulator führt das Android-Betriebssystem in einer virtuellen Maschine aus, die als Android Virtual Device (AVD) bezeichnet wird. Jede AVD enthält den vollständigen Android-Softwarestack und wird so ausgeführt, als wäre sie 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.
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 zum Ausführen dieser Images erstellen.
So erstellen und führen Sie ein AVD-System-Image aus:
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 werden den Android-Codenamen, -Tags und -Build-Nummern zugeordnet.
AVD-Systemimage erstellen Das ist derselbe Vorgang wie beim Erstellen eines Android-Gerätesystem-Images. So erstellen Sie beispielsweise eine x86-64-Bit-AVD:
source ./build/envsetup.sh
lunch sdk_phone_x86_64
make -j32
Führen Sie das AVD-System-Image 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:
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.
Erstellen Sie zusätzliche
sdk
- undsdk_repo
-Pakete:Unter Android 13 und höher verwenden Sie den Befehl
emu_img_zip
:$ make emu_img_zip
Dadurch wird eine
sdk-repo-linux-system-images-eng.[username]].zip
-Datei generiert.Für Android 12 und niedriger verwenden Sie den Befehl
sdk_repo
:$ make -j32 sdk sdk_repo
Mit dem Befehl
make sdk sdk_repo
werden zwei Dateien unteraosp-main/out/host/linux-x86/sdk/sdk_phone_x86
erstellt:sdk-repo-linux-system-images-eng.[username].zip
repo-sys-img.xml
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.Bei Android 12 und niedriger bearbeiten Sie
repo-sys-img.xml
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 als URL der benutzerdefinierten Update-Website verwendet werden soll.
- Aktualisieren Sie
So verwenden Sie ein benutzerdefiniertes AVD-Image im SDK-Manager:
Fügen Sie die URL der benutzerdefinierten Update-Website als SDK-Update-Website hinzu.
Dadurch wird Ihr benutzerdefiniertes AVD-System-Image der Seite „System-Images“ hinzugefügt.
Erstellen Sie eine AVD, indem Sie das benutzerdefinierte AVD-System-Image herunterladen und auswählen.
Unterstützung für mehrere Displays hinzufügen
Android 10 verbessert die Multi-Display-Funktion, um mehr Anwendungsfälle wie den Auto- und Desktopmodus besser 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 eigentliche Hardware einrichten zu müssen.
Sie können einer AVD die Unterstützung für mehrere Bildschirme hinzufügen, indem Sie die folgenden Änderungen vornehmen oder diese Befehlszeilen verwenden.
Fügen Sie dem Build den Anbieter für mehrere Bildschirme 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 der Datei
device/generic/goldfish/data/etc/advancedFeatures.ini
die folgende Zeile hinzufügen:MultiDisplay = on
Die neuesten Emulatorfunktionen und Release-Informationen finden Sie in den folgenden Quellen: