Mit dem Android-Emulator können Sie Emulationen von Android-Geräten erstellen, auf denen Ihre eigenen benutzerdefinierten Android-System-Images ausgeführt werden. Darüber hinaus können Sie in Android-Emulator-Emulationen Multi-Display-Unterstützung hinzufügen.
Architektur des Android-Emulators
Im Android-Emulator wird das Android-Betriebssystem in einer virtuellen Maschine ausgeführt, einem virtuellen Android-Gerät (AVD). Jedes AVD enthält den vollständigen Android-Softwarestack und wird so ausgeführt, als befände es sich auf einem physischen Gerät. In Abbildung 1 ist die allgemeine Architektur des Android-Emulators dargestellt. Weitere Informationen zum Emulator finden Sie unter Apps im Android-Emulator ausführen.
Abbildung 1: Android-Emulator-Architektur.
AVD-Images erstellen
Jedes AVD enthält ein Android-Systemimage, 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 Sie ein AVD-System-Image und führen es aus:
Android-Quelle 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 deren Zweignamen im öffentlichen Android-Repository. Sie sind Android-Codenamen, -Tags und -Build-Nummern zugeordnet.
Erstellen Sie ein AVD-System-Image. Der Vorgang entspricht dem Erstellen eines System-Images für Android-Geräte. So erstellen Sie beispielsweise eine x86-AVD mit 64 Bit:
source ./build/envsetup.sh
lunch sdk_phone_x86_64
make -j32
Führen Sie das AVD-Systemimage im Android-Emulator aus:
emulator
Weitere Informationen zum Ausführen des Emulators finden Sie unter Startoptionen der Befehlszeile. Abbildung 2 zeigt ein Beispiel für den Android-Emulator, der ein AVD ausführt:
Abbildung 2: Android-Emulator mit AVD.
AVD-Systemabbilder freigeben, damit andere Nutzer sie mit Android Studio verwenden können
Folgen Sie dieser Anleitung, um Ihre AVD-Systemabbilder mit anderen zu teilen. Sie können Ihre AVD-System-Images mit Android Studio verwenden, um Apps zu entwickeln und zu testen.
Erstellen Sie zusätzliche
sdk
- undsdk_repo
-Pakete:Verwenden Sie unter 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 erstellt.Verwenden Sie unter Android 12 und niedriger den Befehl
sdk_repo
:$ make -j32 sdk sdk_repo
Mit dem Befehl
make sdk sdk_repo
werden zwei Dateien unteraosp-android-latest-release/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 Ort, auf den Ihre Nutzer zugreifen können, und rufen Sie ihre URL als AVD-System-Image-URL auf.Bearbeiten Sie
repo-sys-img.xml
für Android 12 und niedriger entsprechend:- Aktualisieren Sie
<sdk:url>
auf Ihre AVD-System-Image-URL. - 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 seine URL als URL der benutzerdefinierten Update-Website auf.
- Aktualisieren Sie
So kannst du ein benutzerdefiniertes AVD-Bild verwenden:
Fügen Sie die URL der benutzerdefinierten Update-Website als SDK-Aktualisierungswebsite hinzu.
Dadurch wird Ihr benutzerdefiniertes AVD-Systemimage zur Seite „System-Images“ hinzugefügt.
Erstellen Sie ein AVD, indem Sie das benutzerdefinierte AVD-System-Image herunterladen und auswählen.
Multi-Display-Unterstützung 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 spezielle 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 eine Auswahl aus diesen CLs treffen.
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: