Um Android Virtual Devices (AVDs) zu verwenden, unterstützt der Android-Emulator eine grafische Benutzeroberfläche (GUI) und eine Befehlszeilenschnittstelle (CLI). Sie wählen den optimalen Workflow für Ihre Umgebung.
- Die GUI zum Erstellen und Verwalten virtueller Geräte ist ein unkompliziertes Tool, das den meisten App-Entwicklern und -Benutzern zur Verfügung gestellt wird.
- Das Starten des Emulators über die Befehlszeile bietet eine flexible Möglichkeit für Power-User und Automatisierung. Beispielsweise um mehrere AVDs zu verwenden oder kontinuierliches Testen und kontinuierliche Integration einzurichten. Sehen Sie sich zum Einstieg die Beispiele unter „Tools “ an.
Starten Sie ein AOSP Car AVD mit vorgefertigten Produkten
Um den vorgefertigten AOSP Car AVD schnell zu starten und zu testen, verwenden Sie ein Open-Source-Skript, um einen Emulator-Build von ci.android.com
herunterzuladen und zu starten. Das Skript wurde auf macOS und Linux getestet.
Sie benötigen Curl , um dieses Skript verwenden zu können.
So führen Sie das Skript aus:
- Kopieren Sie den Inhalt des Skripts
launch_emu.sh
in Ihre lokale Datei, vorausgesetzt, Sie verwendenlaunch_emu.sh
als lokalen Dateinamen. - Machen Sie Ihr lokales Skript ausführbar. Führen Sie beispielsweise
chmod +x ./launch_emu.sh
aus. - Überprüfen Sie die verfügbaren Optionen, indem Sie das Skript mit
./launch_emu.sh -h
ausführen. - Gehen Sie auf
ci.android.com
zum Zweigaosp-main-throttled
und wählen Sie einen aktuellen Build aus, in demsdk_car_x86_64
grün ist. Beispiel: 11370359. Wenn Sie keine Build-Informationen sehen, melden Sie sich von Ihrem Google-Konto ab und versuchen Sie es erneut. - Laden Sie die für den Emulator relevanten Binärdateien mit der Build-ID herunter und installieren Sie sie. Beispiel:
./launch_emu.sh -i -a 11370359
. - Danach können Sie
./launch_emu.sh
verwenden, um den heruntergeladenen und installierten Emulator zu starten (verwenden Sie nicht die Optionen-i
oder-a
). - Um eine andere Build-ID herunterzuladen und zu installieren, führen Sie
./launch_emu.sh -c
aus, um Ihren Arbeitsbereich zu bereinigen, und wiederholen Sie dann Schritt 4 und Schritt 5 oben.
Um beim Starten des Emulators Befehlszeilen-Startoptionen für den Android-Emulator anzugeben, verwenden Sie die Option -v
. Beispiel:
./launch_emu.sh -v “-cores 4 -memory 6144 -no-snapshot"
Bauen Sie ein AOSP-Auto-AVD
Der Prozess zum Erstellen einer AOSP-Auto-AVD ähnelt dem Erstellen von AVD-Bildern für ein Telefon (z. B. aosp_car_x86_64):
- Informationen zum Einrichten der Entwicklungsumgebung und zum Identifizieren eines Zweigs finden Sie unter Quellcodeverwaltungstools . Lesen Sie dann „ Downloading the Source“ (Quelle herunterladen) :
ANDROID_BRANCH="android12L-release"
REPO_URL="https://android.googlesource.com/platform/manifest"
mkdir $ANDROID_BRANCH && cd $ANDROID_BRANCH && repo init -u $REPO_URL -b $ANDROID_BRANCH --partial-clone && repo sync -c -j8 - Erstellen Sie das AVD-Image:
. build/envsetup.sh && lunch sdk_car_x86_64-userdebug && m -j32
- Führen Sie das AVD-Image aus (fügen Sie bei Bedarf zusätzliche Befehlszeilen-Startoptionen hinzu):
emulator &
Zum Beispiel:
Abbildung 1. Bildschirm des virtuellen Android-Emulators
Hinweise zu diesem Vorgang:
- Da der Erstellungsprozess derselbe ist, der zum Erstellen von Android für ein physisches Gerät erforderlich ist, sollten Sie sich etwas Zeit nehmen, um den Quellcode herunterzuladen und ihn dann zu erstellen.
- Um an anderen Zweigen zu arbeiten, legen Sie
$ANDROID_BRANCH
auf einen anderen Zweig/ein anderes Tag fest. - AVD-Bilder wie
system.img
werden unter$ANDROID_PRODUCT_OUT
erstellt. Weitere Informationen zu Schlüsselbildern finden Sie im AVD-Systemverzeichnis . - Sehen Sie sich die README- Datei an, um zu erfahren, wie die vorgefertigten Emulator-Binärdateien in Ihrem Android-Baum zum Ausführen des Emulators verwendet werden.
Erstellen Sie eine Auto-AVD
Das Hinzufügen eines neuen Auto-AVD ist fast identisch mit dem Hinzufügen eines neuen Geräts . Beispielsweise erstellt 1660554 eine neue AVD avd_car
“.
So erstellen Sie eine Auto-AVD:
- Erstellen Sie nach Bedarf einen Firmen- und einen Geräteordner. In diesem Beispiel wird
$ANDROID_BUILD_TOP/device/google_car/avd_car
verwendet. - Erstellen Sie das Produkt-Makefile
avd_car.mk
, das definiert, wie die AVD erstellt wird. - Erstellen Sie einen Geräteordner,
avd_car_device
, in demBoardConfig.mk
undsource.properties
enthalten sein sollen. - Fügen Sie das neue
makefile
und die neuelunch
zuAndroidProducts.mk
hinzu. - So erstellen und führen Sie das neue AVD
avd_car
“ aus:. build/envsetup.sh && lunch acar-userdebug && m -j32 && emulator &
Packen Sie eine AVD-Image-ZIP-Datei
Sie können Ihre AVD packen und mit anderen teilen oder auf einem anderen Computer verwenden. Verwenden Sie emu_img_zip.mk
, um die AVD-Image-ZIP-Datei zu generieren:
- Nachdem Sie die AVD erstellt haben, machen Sie
emu_img_zip
zum Ziel:m emu_img_zip
- Die AVD-Image-ZIP-Datei mit dem Präfix
sdk-repo-linux-system-images
wird im Ordner mit dem Namen$ANDROID_PRODUCT_OUT
erstellt.
Erstellen Sie einen AVD-Kernel
AVD-Kernel ähneln anderen Android-Kerneln darin, dass es sich bei allen um vorgefertigte Images handelt. Normalerweise können Sie die vorgefertigten Standard-Images des Goldfish-Kernels wie in jeder Android-Version verwenden.
So experimentieren Sie mit Kernel-Änderungen:
- Führen Sie die folgende Reihe von Anweisungen aus:
mkdir goldfish-kernel-54 cd goldfish-kernel-54 repo init -u https://android.googlesource.com/kernel/manifest -b common-android11-5.4 repo sync BUILD_CONFIG=common/build.config.gki.x86_64 build/build.sh BUILD_CONFIG=common-modules/virtual-device/build.config.goldfish.x86_64 build/build.sh ls -l ./out/android11-5.4/dist/
- Ersetzen Sie die Kernel-Binärdatei in der Codebasis entsprechend dem AVD-Makefile. Beispielsweise enthält
x86_64-vendor.mk
x86_64-kernel.mk
.
Der Kernel-Code und die Konfiguration befinden sich wie folgt:
Artikel | Wert |
---|---|
Zweig | common-android11-5.4 (verwendet in Android 11) |
Manifest | kernel/manifest/common-android11-5.4 |
Common-Module/Virtual-Device | kernel/common-modules/virtual-device/android11-5.4 |
Kernel | kernel/common/android11-5.4 |
Erstellen Sie ein neues Geräteprofil
Informationen dazu, wie Benutzer eine bestimmte AVD im Android Studio AVD Manager erstellen können, finden Sie unter Erstellen und Verwalten virtueller Geräte . Gerätehersteller können mithilfe einer im AVD-Image enthaltenen Datei devices.xml
ihre eigenen Hardwarespezifikationen definieren, beispielsweise für Bildschirmgröße und DPI.
- Sehen Sie sich beispielsweise die Automotive-Geräteprofile in
automotive.xml
an. - Für die HMI-Entwicklung oder das Prototyping können der Datei mehrere Geräte für dasselbe AVD-Bild hinzugefügt werden.
- Fügen Sie die Datei in die ZIP-Datei des OEM AVD-Images im Ordner
[ABI]
ein. Zum Beispiel alsx86_64
. - Gerätehersteller können auch einen Emulator-Skin erstellen . Zum Beispiel, um zusätzliche Hardwaretasten für eine UX mit höherer Wiedergabetreue zu definieren. Dies ist nicht nur für Entwickler-Workflows nützlich, sondern auch für andere Aufgaben wie UX-Recherche und -Überprüfung.
Erstellen Sie die AVD-Bild-XML-Datei
Gerätehersteller können eine AVD-Bild-XML-Datei für Android Studio erstellen, um sie herunterzuladen.
- Sehen Sie sich beispielsweise die AAOS AVD-Bild-XML-Datei
sys-img2-1.xml
an. - Gerätehersteller können mit der Lizenz für den Android-Emulator ihre eigene OEM-AVD-Lizenzvereinbarung für ihre Zielbenutzer definieren (unter Verwendung des Honor-Systems). Android Studio erhält den Konsens der Benutzer, wenn eine solche Lizenz enthalten ist.
So erstellen Sie das Bild:
- Bereiten Sie eine AVD-Image-ZIP-Datei vor.
- Entpacken Sie
${ANDROID_PRODUCT_OUT}/sdk-repo-linux-system-images-*.zip
. - Fügen Sie
devices.xml
zum Ordnerx86_64
hinzu und komprimieren Sie die Datei dann in einer ZIP-Datei. Zum Beispiel alsoem_avd_img_x86_64.zip
. - Aktualisieren Sie
oem-sys-img2-1.xml
. - Aktualisieren Sie den Namen, die Größe und die Shasum der ZIP-Datei (Beispiel-XML-Dateien finden Sie unter
tools
).
Informationen zum Hosten des AVD auf Google Cloud Storage finden Sie beispielsweise unter Erstellen von Speicher-Buckets .
Informationen zum Hochladen und öffentlichen Zugänglichmachen der AVD finden Sie unter Daten öffentlich machen :
BUCKET_NAME="aaos-avd" gsutil mb gs://$BUCKET_NAME gsutil cp oem_avd_img_x86_64.zip gs://$BUCKET_NAME gsutil cp oem-sys-img2-1.xml gs://$BUCKET_NAME gsutil iam ch allUsers:objectViewer gs://$BUCKET_NAME
Das AVD-Bild-SDK-Add-on-URL-Format lautet wie folgt: https://storage.googleapis.com/$BUCKET_NAME/oem-sys-img2-1.xml
. Wenn der BUCKET_NAME beispielsweise aaos-avd lautet, lautet die URL: https://storage.googleapis.com/aaos-avd/oem-sys-img2-1.xml
.
Teilen Sie ein AVD-Bild mit Android Studio-Benutzern
Damit Ihre Benutzer AVD-Bilder herunterladen und Ihr AVD von Android Studio verwenden können, können Sie eine SDK-Add-on-XML-Datei bereitstellen. Einzelheiten finden Sie unter Aktualisieren der IDE- und SDK-Tools .
So laden Sie die AVD aus dem Netzwerk herunter:
- Hosten Sie die Bild-ZIP-Datei und die XML-Dateien auf einem Server.
- Geben Sie die URL an Ihre Zielbenutzer weiter.
- ( Optional ) Beschränken Sie den Zugriff nach Benutzername und Passwort.
Um die Entwicklung zu beschleunigen, laden Sie alternativ die AVD in ein lokales Verzeichnis herunter:
- Speichern Sie die XML-Dateien und alle in der XML-Datei angegebenen Artefakte in einem Ordner (z. B. alle AVD-Bild-ZIP-Dateien) mit dem Namen
ADDON_DIR
. - Geben Sie die URL als
file://$ADDON_DIR/oem-sys-img2-1.xml
.