Android Virtual Device als Entwicklungsplattform

Für die Verwendung von AVDs (Android Virtual Devices) unterstützt der Android Emulator eine grafische Benutzeroberfläche (GUI) und eine Befehlszeile (CLI). Sie wählen den optimalen Workflow für Ihre Umgebung aus.

AOSP Car-AVD erstellen

Der Vorgang zum Erstellen eines AOSP Car-AVD ähnelt dem Erstellen von AVD-Images für ein Smartphone (z. B. aosp_car_x86_64):

  1. Informationen zum Einrichten der Entwicklungsumgebung und zum Identifizieren eines Zweigs finden Sie unter Quellcodeverwaltungstools. Gehe dann zu Herunterladen der Quelle:
    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
  2. AVD-Image erstellen:
    . build/envsetup.sh && lunch sdk_car_x86_64-userdebug && m -j32
  3. Führen Sie das AVD-Image aus (fügen Sie bei Bedarf zusätzliche Startoptionen für die Befehlszeile hinzu):
    emulator &

    Beispiel:

    Abbildung 1: Bildschirm des Android Virtual Emulator

    Hinweise zu diesem Prozess:

    • Da der Build-Prozess derselbe ist wie für das Erstellen von Android für ein physisches Gerät, kann es einige Zeit dauern, bis der Quellcode heruntergeladen und erstellt ist.
    • Wenn Sie an anderen Zweigen arbeiten möchten, legen Sie $ANDROID_BRANCH auf einen anderen Zweig/Tag fest.
    • AVD-Images wie system.img werden unter $ANDROID_PRODUCT_OUT erstellt. Weitere Informationen zu Schlüsselbildern finden Sie im AVD-Systemverzeichnis.
    • In der README-Datei erfahren Sie, wie die vorgefertigten Emulator-Binärdateien in Ihrem Android-Baum zum Ausführen des Emulators verwendet werden.

AVD für Autos erstellen

Das Hinzufügen eines neuen AVD für Autos ist fast identisch mit dem Hinzufügen eines neuen Geräts. Beispiel: 1660554 erstellt ein neues avd_car-AVD.

So erstellen Sie ein Car-AVD:

  1. Erstellen Sie bei Bedarf ein Unternehmen und einen Geräteordner. In diesem Beispiel wird $ANDROID_BUILD_TOP/device/google_car/avd_car verwendet.
  2. Erstellen Sie das Produkt-Makefile avd_car.mk, in dem definiert wird, wie das AVD erstellt wird.
  3. Erstellen Sie einen Geräteordner namens avd_car_device, in dem BoardConfig.mk und source.properties enthalten sind.
  4. Fügen Sie makefile und die neue Auswahlmöglichkeit lunch zu AndroidProducts.mk hinzu.
  5. So erstellen und führen Sie das neue avd_car-AVD aus:
    . build/envsetup.sh && lunch acar-userdebug && m -j32 && emulator &
Sie können jetzt die meisten HMI- und App-Funktionen auf Ihrem neuen AVD prototypisieren.

AVD-Image-ZIP-Datei packen

Sie können Ihr AVD packen und mit anderen teilen oder auf einem anderen Computer verwenden. Verwenden Sie emu_img_zip.mk, um die ZIP-Datei für das AVD-Image zu generieren:

  1. Nachdem Sie das AVD erstellt haben, legen Sie emu_img_zip als Ziel fest:
    m emu_img_zip
  2. Die ZIP-Datei für das AVD-Image mit dem Präfix sdk-repo-linux-system-images wird im Ordner $ANDROID_PRODUCT_OUT erstellt.

AVD-Kernel erstellen

AVD-Kernel ähneln anderen Android-Kerneln, da es sich bei allen um vorgefertigte Images handelt. Normalerweise können Sie die vorkonfigurierten Standard-Goldfish-Kernel-Images aus jeder Android-Version unverändert verwenden.

So testen Sie Änderungen am Kernel:

  1. Führen Sie die folgenden Schritte 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/
  2. Ersetzen Sie das Kernel-Binärprogramm in der Codebasis gemäß dem AVD-Makefile. Beispiel: device/generic/goldfish/board/emu64x/details.mk umfasst device/generic/goldfish/board/kernel/x86_64.mk.

Der Kernelcode und die Konfiguration befinden sich an folgenden Speicherorten:

Artikel Wert
Branch common-android11-5.4 (in Android 11 verwendet)
Manifest kernel/manifest/common-android11-5.4
common-modules/virtual-device kernel/common-modules/virtual-device/android11-5.4
Kernel kernel/common/android11-5.4

Neues Geräteprofil erstellen

Informationen dazu, wie Nutzer einen bestimmten AVD im AVD Manager von Android Studio erstellen können, finden Sie unter Virtuelle Geräte erstellen und verwalten. Gerätehersteller können ihre eigenen Hardwarespezifikationen wie Bildschirmgröße und DPI-Wert über eine devices.xml-Datei definieren, die im AVD-Image enthalten ist.

  • Beispiele finden Sie in den Geräteprofilen für die Automobilbranche in automotive.xml.
  • Für die HMI-Entwicklung oder das Prototyping können der Datei für dasselbe AVD-Image mehrere Geräte hinzugefügt werden.
  • Fügen Sie die Datei in die ZIP-Datei des OEM-AVD-Images im Ordner [ABI] ein. Beispiel: x86_64.
  • Gerätehersteller können auch Emulator-Skins erstellen. So können Sie beispielsweise zusätzliche Hardwaretasten für eine bessere UX definieren. Das ist nicht nur für Entwickler-Workflows nützlich, sondern auch für andere Aufgaben wie UX-Forschung und Überprüfung.

AVD-Image-XML-Datei erstellen

Gerätehersteller können eine AVD-Image-XML-Datei für Android Studio erstellen, damit sie heruntergeladen werden kann.

  • Ein Beispiel finden Sie in der XML-Datei für das AAOS-AVD-Image, sys-img2-1.xml.
  • Gerätehersteller können für ihre Zielnutzer eine eigene OEM-AVD-Lizenzvereinbarung für den Android Emulator definieren (auf Vertrauensbasis). Android Studio holt die Einwilligung des Nutzers ein, wenn eine solche Lizenz enthalten ist.

So erstellen Sie das Bild:

  1. Bereiten Sie eine ZIP-Datei mit dem AVD-Image vor.
  2. Entpacken Sie ${ANDROID_PRODUCT_OUT}/sdk-repo-linux-system-images-*.zip.
  3. Fügen Sie devices.xml dem Ordner x86_64 hinzu und komprimieren Sie die Datei dann in einer ZIP-Datei. Beispiel: oem_avd_img_x86_64.zip.
  4. oem-sys-img2-1.xml aktualisieren.
  5. Aktualisieren Sie den Namen, die Größe und den SHA-Summenwert der ZIP-Datei. Beispiel-XML-Dateien finden Sie unter tools.

Wenn Sie das AVD beispielsweise in Google Cloud Storage hosten möchten, lesen Sie den Abschnitt Storage-Buckets erstellen.

Informationen zum Hochladen und öffentlich zugänglich machen des 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 URL-Format für das AVD-Image-SDK-Add-on lautet: https://storage.googleapis.com/$BUCKET_NAME/oem-sys-img2-1.xml. Wenn der BUCKET_NAME beispielsweise aaos-avd ist, lautet die URL: https://storage.googleapis.com/aaos-avd/oem-sys-img2-1.xml.

AVD-Image für Android Studio-Nutzer freigeben

Damit Ihre Nutzer AVD-Images herunterladen und Ihr AVD in Android Studio verwenden können, können Sie eine SDK-Add-on-XML-Datei bereitstellen. Weitere Informationen finden Sie unter IDE und SDK-Tools aktualisieren.

So laden Sie das AVD aus dem Netzwerk herunter:

  1. Hosten Sie die ZIP-Datei mit den Bildern und die XML-Dateien auf einem Server.
  2. Stellen Sie die URL Ihren Zielnutzern zur Verfügung.
  3. Optional: Zugriff nach Nutzername und Passwort beschränken.

Alternativ können Sie das AVD in ein lokales Verzeichnis herunterladen, um die Entwicklung zu beschleunigen:

  1. Speichern Sie die XML-Dateien und alle in der XML-Datei angegebenen Artefakte (z. B. alle ZIP-Dateien für AVD-Bilder) in einem Ordner mit dem Namen ADDON_DIR.
  2. Geben Sie die URL als file://$ADDON_DIR/oem-sys-img2-1.xml an.