Android Virtual Device als Entwicklungsplattform

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.

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:

  1. Kopieren Sie den Inhalt des Skripts „launch_emu.sh“ in Ihre lokale Datei, vorausgesetzt, Sie verwenden launch_emu.sh als lokalen Dateinamen.
  2. Machen Sie Ihr lokales Skript ausführbar. Führen Sie beispielsweise chmod +x ./launch_emu.sh aus.
  3. Überprüfen Sie die verfügbaren Optionen, indem Sie das Skript mit ./launch_emu.sh -h ausführen.
  4. Gehen Sie auf ci.android.com zum Zweig aosp-main-throttled und wählen Sie einen aktuellen Build aus, in 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 erneut.
  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. Danach können Sie ./launch_emu.sh verwenden, um den heruntergeladenen und installierten Emulator zu starten (verwenden Sie nicht die Optionen -i oder -a ).
  7. 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):

  1. 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
  2. Erstellen Sie das AVD-Image:
    . 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 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:

  1. Erstellen Sie nach Bedarf einen Firmen- 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 , das definiert, wie die AVD erstellt wird.
  3. Erstellen Sie einen Geräteordner, avd_car_device , in dem BoardConfig.mk und source.properties enthalten sein sollen.
  4. Fügen Sie das neue makefile und die neue lunch zu AndroidProducts.mk hinzu.
  5. So erstellen und führen Sie das neue AVD avd_car aus:
    . build/envsetup.sh && lunch acar-userdebug && m -j32 && emulator &
Sie sind jetzt bereit, Prototypen für die meisten HMI- und App-Funktionen auf Ihrem neuen AVD zu erstellen.

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:

  1. Nachdem Sie die AVD erstellt haben, machen Sie emu_img_zip zum Ziel:
    m emu_img_zip
  2. 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:

  1. 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/
    
  2. 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 als x86_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:

  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 zum Ordner x86_64 hinzu und komprimieren Sie die Datei dann in einer ZIP-Datei. Zum Beispiel als oem_avd_img_x86_64.zip .
  4. Aktualisieren Sie oem-sys-img2-1.xml .
  5. 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 eines AVD-Bildes 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:

  1. Hosten Sie die Bild-ZIP-Datei und die XML-Dateien auf einem Server.
  2. Geben Sie die URL an Ihre Zielbenutzer weiter.
  3. ( Optional ) Beschränken Sie den Zugriff durch Benutzername und Passwort.

Um die Entwicklung zu beschleunigen, laden Sie alternativ die AVD in ein lokales Verzeichnis herunter:

  1. 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 .
  2. Geben Sie die URL als file://$ADDON_DIR/oem-sys-img2-1.xml an.
,

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.

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:

  1. Kopieren Sie den Inhalt des Skripts „launch_emu.sh“ in Ihre lokale Datei, vorausgesetzt, Sie verwenden launch_emu.sh als lokalen Dateinamen.
  2. Machen Sie Ihr lokales Skript ausführbar. Führen Sie beispielsweise chmod +x ./launch_emu.sh aus.
  3. Überprüfen Sie die verfügbaren Optionen, indem Sie das Skript mit ./launch_emu.sh -h ausführen.
  4. Gehen Sie auf ci.android.com zum Zweig aosp-main-throttled und wählen Sie einen aktuellen Build aus, in 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 erneut.
  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. Danach können Sie ./launch_emu.sh verwenden, um den heruntergeladenen und installierten Emulator zu starten (verwenden Sie nicht die Optionen -i oder -a ).
  7. 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):

  1. 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
  2. Erstellen Sie das AVD-Image:
    . 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 Befehlszeilen-Startoptionen hinzu):
    emulator &

    Zum Beispiel:

    Abbildung 1. Bildschirm des virtuellen Android-Emulators

    Hinweise zu diesem Vorgang:

    • Da der Build-Prozess derselbe ist wie der, der zum Erstellen von Android für ein physisches Gerät erforderlich ist, nehmen Sie sich etwas Zeit, 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:

  1. Erstellen Sie nach Bedarf einen Firmen- 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 , das definiert, wie die AVD erstellt wird.
  3. Erstellen Sie einen Geräteordner, avd_car_device , in dem BoardConfig.mk und source.properties enthalten sein sollen.
  4. Fügen Sie das neue makefile und die neue lunch zu AndroidProducts.mk hinzu.
  5. So erstellen und führen Sie das neue AVD avd_car aus:
    . build/envsetup.sh && lunch acar-userdebug && m -j32 && emulator &
Sie sind jetzt bereit, Prototypen für die meisten HMI- und App-Funktionen auf Ihrem neuen AVD zu erstellen.

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:

  1. Nachdem Sie die AVD erstellt haben, machen Sie emu_img_zip zum Ziel:
    m emu_img_zip
  2. 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:

  1. 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/
    
  2. 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 als x86_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:

  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 zum Ordner x86_64 hinzu und komprimieren Sie die Datei dann in einer ZIP-Datei. Zum Beispiel als oem_avd_img_x86_64.zip .
  4. Aktualisieren Sie oem-sys-img2-1.xml .
  5. 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 eines AVD-Bildes 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:

  1. Hosten Sie die Bild-ZIP-Datei und die XML-Dateien auf einem Server.
  2. Geben Sie die URL an Ihre Zielbenutzer weiter.
  3. ( 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:

  1. 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 .
  2. Geben Sie die URL als file://$ADDON_DIR/oem-sys-img2-1.xml an.