Android Virtual Device als Entwicklungsplattform

Für die Verwendung virtueller Android-Geräte (AVDs) 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.

  • Virtuelle Geräte erstellen und verwalten Die Benutzeroberfläche ist ein einfaches Tool, das für die meisten App-Entwickler und ‑Nutzer zur Verfügung steht.
  • Das Starten des Emulators über die Befehlszeile bietet eine flexible Möglichkeit für erfahrene Nutzer und Automatisierung. Sie können beispielsweise mehrere AVDs verwenden oder kontinuierliche Tests und Continuous Integration einrichten. Sehen Sie sich zum Einstieg die Beispiele unter Tools an.

AOSP Car AVD mit vorgefertigtem Image starten

Wenn Sie eine vorkonfigurierte AOSP Car AVD schnell starten und testen möchten, können Sie mit einem Open-Source-Script einen Emulator-Build von ci.android.com herunterladen und starten. Das Script wurde unter macOS und Linux getestet.

Sie benötigen Curl, um dieses Script zu verwenden.

So führen Sie das Script aus:

  1. Kopieren Sie den Inhalt des Scripts launch_emu.sh in die lokale Datei, vorausgesetzt, Sie verwenden launch_emu.sh als lokalen Dateinamen.
  2. Machen Sie Ihr lokales Script ausführbar. Führen Sie beispielsweise chmod +x ./launch_emu.sh aus.
  3. Führen Sie das Script mit ./launch_emu.sh -h aus, um die verfügbaren Optionen zu prüfen.
  4. Rufe auf ci.android.com den Branch aosp-main-throttled auf und wähle einen aktuellen Build aus, bei dem sdk_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 noch einmal.
  5. 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.
  6. Anschließend können Sie den heruntergeladenen und installierten Emulator mit ./launch_emu.sh starten. Verwenden Sie dazu nicht die Optionen -i oder -a.
  7. Wenn Sie eine andere Build-ID herunterladen und installieren möchten, führen Sie ./launch_emu.sh -c aus, um Ihren Arbeitsbereich zu bereinigen, und wiederholen Sie dann die Schritte 4 und 5 oben.

Wenn Sie beim Starten des Emulators Befehlszeilenstartoptionen für den Android-Emulator angeben möchten, verwenden Sie die Option -v. Beispiel:

  ./launch_emu.sh -v “-cores 4 -memory 6144 -no-snapshot"

AOSP Car AVD erstellen

Das Erstellen einer 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 Festlegen eines Branches finden Sie unter Tools zur Versionskontrolle. Sehen Sie sich dann Herunterladen der Quelle an:
    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 Befehlszeilenstartoptionen an:
    emulator &

    Beispiel:

    Abbildung 1: Bildschirm des virtuellen Android-Emulators

    Hinweise zu diesem Vorgang:

    • Da der Build-Prozess dem für die Erstellung von Android für ein physisches Gerät entspricht, benötigen Sie etwas Zeit, um die Quelle herunterzuladen und dann zu erstellen.
    • Wenn Sie an anderen Branches arbeiten möchten, legen Sie $ANDROID_BRANCH auf einen anderen Branch/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 vorkonfigurierten Emulator-Binärdateien in Ihrem Android-Baum zum Ausführen des Emulators verwendet werden.

AVD für Auto erstellen

Das Hinzufügen eines neuen AVD für ein Auto ist fast identisch mit dem Hinzufügen eines neuen Geräts. Mit 1660554 wird beispielsweise eine neue avd_car-AVD erstellt.

So erstellen Sie eine AVD für Autos:

  1. Erstellen Sie nach Bedarf einen Ordner für das Unternehmen und einen für das Gerät. In diesem Beispiel wird $ANDROID_BUILD_TOP/device/google_car/avd_car verwendet.
  2. Erstellen Sie das Produkt-Makefile avd_car.mk, in dem festgelegt wird, wie die AVD erstellt wird.
  3. Erstellen Sie einen Geräteordner mit dem Namen 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 die 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 Ihrer neuen AVD prototypisieren.

AVD-Image-ZIP-Datei verpacken

Sie können Ihre AVD verpacken und für andere freigeben oder auf einem anderen Computer verwenden. Verwenden Sie emu_img_zip.mk, um die ZIP-Datei des AVD-Images zu generieren:

  1. Nachdem Sie die AVD erstellt haben, legen Sie emu_img_zip als Ziel fest:
    m emu_img_zip
  2. Die ZIP-Datei des AVD-Images 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 sie alle vorgefertigte Images sind. Normalerweise können Sie die vorkonfigurierten Images des Standard-Goldfish-Kernels aus jeder Android-Version unverändert verwenden.

So testen Sie Kerneländerungen:

  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-Binary in der Codebasis gemäß dem AVD-Makefile. Beispiel: x86_64-vendor.mk enthält x86_64-kernel.mk.

Der Kernelcode und die Konfiguration befinden sich hier:

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
Ploppendes Popcorn kernel/common/android11-5.4

Neues Geräteprofil erstellen

Informationen dazu, wie Sie Nutzern das Erstellen einer bestimmten AVD im AVD Manager von Android Studio ermöglichen, finden Sie unter Virtuelle Geräte erstellen und verwalten. Gerätehersteller können ihre eigenen Hardwarespezifikationen wie Bildschirmgröße und DPI mithilfe einer devices.xml-Datei definieren, die im AVD-Image enthalten ist.

  • Weitere Informationen finden Sie beispielsweise in den Geräteprofilen für die Automobilbranche in automotive.xml.
  • Für die HMI-Entwicklung oder das Prototyping können der Datei mehrere Geräte für dasselbe AVD-Image 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 einen Emulator-Skin erstellen. Beispielsweise können Sie zusätzliche Hardwareschaltflächen für eine höhere UX-Fidelity definieren. Das ist nicht nur für Entwickler-Workflows nützlich, sondern auch für andere Aufgaben wie UX-Recherche 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.

  • Siehe dazu beispielsweise die XML-Datei für das AAOS-AVD-Image sys-img2-1.xml.
  • Gerätehersteller können ihre eigene OEM-AVD-Lizenzvereinbarung für ihre Zielgruppe mit der Lizenz für den Android-Emulator definieren (unter Verwendung des Vertrauensprinzips). Android Studio fordert die Einwilligung der Nutzer ein, wenn eine solche Lizenz enthalten ist.

So erstellen Sie das Image:

  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.

Informationen zum Hosten der AVD beispielsweise in Google Cloud Storage finden Sie unter Storage-Buckets erstellen.

Informationen zum Hochladen und zum Öffentlichmachen 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 URL-Format für das SDK-Add-on für AVD-Images lautet 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.

AVD-Image für Android Studio-Nutzer freigeben

Damit Ihre Nutzer AVD-Images herunterladen und Ihre AVD über 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 die AVD aus dem Netzwerk herunter:

  1. Hosten Sie die ZIP-Datei mit den Bildern und die XML-Dateien auf einem Server.
  2. Geben Sie die URL an Ihre Zielgruppe weiter.
  3. Optional: Beschränken Sie den Zugriff auf Nutzername und Passwort.

Alternativ können Sie die AVD auch 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 namens ADDON_DIR (z. B. alle ZIP-Dateien mit AVD-Bildern).
  2. Geben Sie die URL als file://$ADDON_DIR/oem-sys-img2-1.xml an.