Integrationsleitfaden

Auf dieser Seite wird beschrieben, wie Sie entbündelte Apps integrieren. Apps, die Dialer, Medien, Car UI Library und SMS umfassen, gelten als entbündelte Apps. Diese Apps sind von der Android-Plattform entbündelt und umfassen die Logik zum Empfangen von Daten von der Telefon-Begleit-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.

Schauen Sie sich den Code an

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:


    Abbildung 1. Version 11.
  3. Erstellen Sie die gewünschten APKs.

Befehlszeile

So erstellen Sie den Code über die Befehlszeile:

  1. Legen Sie den Android SDK-Speicherort 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 fest. Android Studio kann dies automatisch tun, wenn ein Projekt geöffnet wird. 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/aaos-apps-gradle-project .
  4. Führen Sie den folgenden Befehl aus:
    ./gradlew assemble

Mindestens erforderliche API-Level

Jede entbündelte App funktioniert auf Android-Plattformen mit einer Version, die mindestens ihrer minSdkVersion entspricht. In der folgenden Tabelle sind die von jeder App unterstützten Mindest-API-Versionen aufgeführt:

App Mindest-API-Level
Kalender 29
Auto-UI-Bibliothek 29
CompanionDevice 29
Dialer 31
Medien 30
SMS 30
AOSP-Host 29

Integrieren eines Prebuilds in ein Systemabbild

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
  • Bereitstellung privilegierter Apps

Dies wird mit der Soong-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. Allerdings sind in den meisten entbündelten Apps frühere Versionen des Quellcodes auf Plattformen vor Android 13 enthalten. Standardmäßig gibt Soong dem Quellcode Vorrang vor einem vorgefertigten. Daher ist es notwendig, das prefer Flag innerhalb der android_app_import -Regel auf 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
Dialer X
AOSP-Host X
Medien X
SMS X
Update-Verteilung OTA OTA oder Google Play OTA oder Google Play