In diesem Artikel 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-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.
Schauen Sie sich den Code an
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 das gewünschte APK (oder die gewünschten APKs).
Befehlszeile
So erstellen Sie den Code über die Befehlszeile:
- 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 Eigenschaftsdk.dir
fest. Android Studio kann dies automatisch tun, wenn ein Projekt geöffnet wird. 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/aaos-apps-gradle-project
- 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 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
- 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 enthalten, die älter als Android 13 sind. 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 Play Store | OTA oder Play Store |