Integrationsleitfaden

Mit Sammlungen den Überblick behalten Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.

Dieser Artikel beschreibt, wie Sie entbündelte Apps integrieren. Apps, die Dialer, Media, Car UI Library und SMS enthalten, gelten als entbündelte Apps. Diese Apps sind von der Android-Plattform entbündelt und enthalten die Logik zum Empfangen von Daten von der Telefon-Companion-App und UX auf der Fahrzeugseite, einschließlich Einstellungen für die Zuordnung und Funktionsregistrierung.

Aus dem entbündelten Code erstellte APKs funktionieren mit mehreren Versionen der Plattform.

Überprüfen Sie den Code

So überprüfen Sie den entbündelten Code:

  1. Führen Sie Folgendes aus:
    repo init -u https://android.googlesource.com/platform/manifest -b ub-automotive-master
    repo sync -cq -j4
    
  2. Weitere Informationen zum Arbeiten mit AOSP-Quellcode finden Sie unter Initialisieren eines Repo-Clients .

Erstellen Sie den Code

Android-Studio

So erstellen Sie den Code in Android Studio:

  1. Importieren Sie in Android Studio diese Build-Datei:
    packages/apps/Car/libs/aaos-apps-gradle-project/build.gradle
  2. Stellen Sie sicher, dass das Gradle JDK in Android Studio mindestens auf Version 11 eingestellt ist:

    Fassung 11
    Abbildung 1. Version 11
  3. Erstellen Sie die gewünschte APK (oder APKs).

Befehlszeile

So erstellen Sie den Code über die Befehlszeile:

  1. Legen Sie den Speicherort des Android SDK auf eine dieser beiden Arten fest:
    • Erstellen Sie packages/apps/Car/libs/aaos-apps-gradle-project/local.properties und legen Sie dann die darin enthaltene Eigenschaft sdk.dir . Android Studio kann dies automatisch beim Öffnen eines Projekts tun. Verwenden Sie beispielsweise sdk.dir=/Users/MY-USERNAME/Library/Android/sdk

      oder,
    • Legen Sie die Umgebungsvariable ANDROID_SDK_ROOT mit dem Pfad zum Android SDK fest.
  2. Öffnen Sie eine Eingabeaufforderung oder ein Shell-Fenster.
  3. Gehen Sie zu packages/apps/Car/libs/unbundled-apps-gradle-project
  4. Führen Sie den folgenden Befehl aus:
    ./gradlew assemble

Erforderliche API-Mindeststufen

Jede entbündelte App funktioniert auf Android-Plattformen mit einer Version gleich oder größer als ihre minSdkVersion . Die folgende Tabelle listet die minimale API-Version auf, die von jeder App unterstützt wird:

App Mindest-API-Level
Kalender 29
Car Ui-Bibliothek 29
CompanionDevice 29
Wählgerät 31
Medien 30
SMS 30
Google Automotive App-Host 29

Integrieren eines Pre-Builds in ein System-Image

Bilder für Android 13 und höher

Der entbündelte Code wird von der Android 13-Plattform entfernt. Daher kann das Hinzufügen vorgefertigter APKs zu Plattform-Builds erforderlich sein für:

  • CDD-Konformitätsprüfung
  • Privilegierte Apps bereitstellen

Dies wird mit der Song-Regel android_app_import erreicht:

android_app_import {
    name: "CarMediaApp",
    apk: "CarMediaApp.apk",
    privileged: true,
    certificate: "platform", // Media must be signed by the platform
    required: ["allowed_privapp_com.android.car.media"],
}

Android 12 und niedriger

Solange die Android-Plattformversion von der App unterstützt wird (siehe Tabelle oben), kann das APK zu diesem System-Image hinzugefügt werden. Die meisten entbündelten Apps haben jedoch frühere Versionen des Quellcodes, die in Plattformen enthalten sind, die älter als Android 13 sind. Standardmäßig gibt Soong dem Quellcode Vorrang vor einem vorgefertigten. Daher ist es notwendig, das android_app_import prefer true zu setzen:

android_app_import {
    name: "CarDialerApp",
    apk: "CarDialerApp.apk",
    privileged: true,
    presigned: true, // Dialer can have its own signature
    required: ["allowed_privapp_com.android.car.dialer"],
    overrides: ["Dialer"],
    prefer: true, // The prebuilt replaces a source target with the same name,
    }

Apps nach entbündeltem Typ aufgelistet

App Privilegiert entbündelt Entbündelt
(Muss nicht auf der Systempartition sein)
System signiert Nicht vom System signiert
Kalender X
CompanionDevice X
Wählgerät X
Google Automotive App-Host X
Medien X
SMS X
Verteilung aktualisieren OTA OTA oder Play Store OTA oder Play Store