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:
- Führen Sie Folgendes aus:
repo init -u https://android.googlesource.com/platform/manifest -b ub-automotive-master repo sync -cq -j4
- 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:
- Importieren Sie in Android Studio diese Build-Datei:
packages/apps/Car/libs/aaos-apps-gradle-project/build.gradle
- Stellen Sie sicher, dass das Gradle JDK in Android Studio mindestens auf Version 11 eingestellt ist:
Abbildung 1. Version 11 - Erstellen Sie die gewünschte APK (oder APKs).
Befehlszeile
So erstellen Sie den Code über die Befehlszeile:
- 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 Eigenschaftsdk.dir
. Android Studio kann dies automatisch beim Öffnen eines Projekts tun. Verwenden Sie beispielsweisesdk.dir=/Users/MY-USERNAME/Library/Android/sdk
oder, - Legen Sie die Umgebungsvariable
ANDROID_SDK_ROOT
mit dem Pfad zum Android SDK fest.
- Erstellen Sie
- Öffnen Sie eine Eingabeaufforderung oder ein Shell-Fenster.
- Gehen Sie zu
packages/apps/Car/libs/unbundled-apps-gradle-project
- 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 |