Android Virtual Device als Entwicklungsplattform

Für die Verwendung von virtuellen Android-Geräten (Android Virtual Devices, AVDs) unterstützt der Android Emulator eine grafische Benutzeroberfläche (Graphical User Interface, GUI) und eine Befehlszeilenschnittstelle (Command Line Interface, CLI). Sie wählen den optimalen Workflow für Ihre Umgebung aus.

AOSP-AVD für Fahrzeuge erstellen

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

  1. Informationen zum Einrichten der Entwicklungsumgebung und zum Auswählen eines Branch finden Sie unter Tools für die Quellcodeverwaltung. Lesen Sie dann Android-Quellcode 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
  2. AVD-Image erstellen:
    . build/envsetup.sh && lunch sdk_car_x86_64-userdebug && m -j32
  3. AVD-Image ausführen (fügen Sie bei Bedarf zusätzliche Befehlszeilen-Startoptionen an):
    emulator &

    Beispiel:

    Abbildung 1 : Bildschirm des Android Virtual Emulator

    Hinweise zu diesem Vorgang:

    • Da der Build-Prozess derselbe ist wie beim Erstellen von Android für ein physisches Gerät, sollten Sie etwas Zeit einplanen, um den Quellcode herunterzuladen und dann zu erstellen.
    • Wenn Sie an anderen Branches arbeiten möchten, legen Sie für $ANDROID_BRANCH einen anderen Branch/Tag fest.
    • AVD-Images wie system.img werden unter $ANDROID_PRODUCT_OUT erstellt. Weitere Informationen zu wichtigen Images finden Sie unter AVD Systemverzeichnis.
    • In der README-Datei erfahren Sie, wie die vorkompilierten Emulator-Binärdateien in Ihrem Android-Baum verwendet werden, um den Emulator auszuführen.

AVD für Fahrzeuge erstellen

Das Hinzufügen eines neuen AVD für Fahrzeuge ist fast identisch mit dem Hinzufügen eines neuen Geräts. Beispiel: Mit 1660554 wird ein neuer avd_car AVD erstellt.

So erstellen Sie einen AVD für Fahrzeuge:

  1. Erstellen Sie bei Bedarf einen Ordner für das Unternehmen und einen Geräteordner. In diesem Beispiel wird $ANDROID_BUILD_TOP/device/google_car/avd_car verwendet.
  2. Erstellen Sie die Produkt-Makefile-Datei avd_car.mk, in der definiert wird, wie der AVD erstellt werden soll.
  3. Erstellen Sie einen Geräteordner avd_car_device, der BoardConfig.mk und source.properties enthält.
  4. Fügen Sie AndroidProducts.mk die neue makefile und die neue lunch Auswahl hinzu.
  5. So erstellen und führen Sie den neuen 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 Ihren AVD packen und für andere freigeben oder ihn auf einem anderen Computer verwenden. Verwenden Sie emu_img_zip.mk , um die AVD-Image-ZIP-Datei zu generieren:

  1. Nachdem Sie den AVD erstellt haben, legen Sie emu_img_zip als Ziel fest:
    m emu_img_zip
  2. Die AVD-Image-ZIP-Datei 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 vorkompilierte Images handelt. Normalerweise können Sie die vorkompilierten Standard-Goldfish-Kernel-Images aus jeder Android-Version unverändert verwenden.

So testen Sie Kernel-Änderungen:

  1. Führen Sie die folgenden 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/
  2. Ersetzen Sie die Kernel-Binärdatei im Quellcode gemäß der AVD-Makefile-Datei. Beispiel: device/generic/goldfish/board/emu64x/details.mk enthält device/generic/goldfish/board/kernel/x86_64.mk.

Der Kernel-Code und die Konfiguration befinden sich an folgenden Speicherorten:

Element 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 im AVD Manager von Android Studio einen bestimmten AVD erstellen können, finden Sie unter Virtuelle Geräte erstellen und verwalten. Gerätehersteller können eigene Hardwarespezifikationen wie Bildschirmgröße und DPI über eine devices.xml-Datei definieren, die im AVD-Image enthalten ist.

  • Ein Beispiel finden Sie in den Geräteprofilen für Fahrzeuge in automotive.xml.
  • Für die HMI-Entwicklung oder Prototypenerstellung können der Datei mehrere Geräte für dasselbe AVD-Image hinzugefügt werden.
  • Fügen Sie die Datei im Ordner [ABI] der OEM-AVD-Image-ZIP-Datei hinzu. Beispiel: x86_64.
  • Gerätehersteller können auch eine Emulator-Skin erstellen. Beispielsweise, um zusätzliche Hardwaretasten für eine bessere UX zu definieren. Das ist nicht nur für Entwickler-Workflows nützlich, sondern auch für andere Aufgaben wie UX-Recherche und ‑Überprüfung.

XML-Datei für AVD-Image erstellen

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

  • Ein Beispiel finden Sie in der XML-Datei für AAOS-AVD-Images: sys-img2-1.xml.
  • Gerätehersteller können eine eigene OEM-AVD-Lizenzvereinbarung für ihre Zielnutzer definieren (nach dem Ehrlichkeitssystem), mit der Lizenz für den Android Emulator. Android Studio holt die Zustimmung der Nutzer ein, wenn eine solche Lizenz enthalten ist.

So erstellen Sie das Image:

  1. Bereiten Sie eine AVD-Image-ZIP-Datei 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. Aktualisieren Sie oem-sys-img2-1.xml.
  5. Aktualisieren Sie den Namen, die Größe und den SHA-Summenwert der ZIP-Datei (Beispiel-XML-Dateien finden Sie in tools).

Informationen zum Hosten des AVD in Google Cloud Storage, finden Sie unter Storage-Buckets erstellen.

Informationen zum Hochladen und öffentlichen Zugänglichmachen 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 Ihren AVD mit Android Studio verwenden können, können Sie eine XML-Datei für das SDK-Add-on bereitstellen. Weitere Informationen finden Sie unter IDE und SDK-Tools aktualisieren.

So laden Sie den AVD aus dem Netzwerk herunter:

  1. Hosten Sie die Image-ZIP-Datei und die XML-Dateien auf einem Server.
  2. Geben Sie die URL für Ihre Zielnutzer an.
  3. (Optional) Beschränken Sie den Zugriff nach Nutzername und Passwort.

Alternativ können Sie den 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 in einem Ordner (z. B. alle AVD-Image-ZIP-Dateien) mit dem Namen ADDON_DIR.
  2. Geben Sie die URL als file://$ADDON_DIR/oem-sys-img2-1.xml an.