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: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 unteraosp-main/out/host/linux-x86/sdk/sdk_phone_x86
zwei Dateien 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 Sie als URL der benutzerdefinierten Update-Website verwenden möchten.
- 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 Multi-Display-Unterstützung 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 „Multi-Display“, 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: