Apps, die Telefon, Medien, die Auto-UI-Bibliothek und SMS enthalten, gelten als entkoppelte Apps (d. h., sie sind von der Android-Plattform entkoppelt). Solche Apps enthalten die Logik zum Empfangen von Daten aus der Begleit-App für Smartphones und die UX auf der Fahrzeugseite, einschließlich Einstellungen für die Verknüpfung und die Registrierung von Funktionen. APKs, die aus entkoppeltem Code erstellt wurden, funktionieren mit mehreren Versionen der Plattform.
Code ansehen
Führen Sie Folgendes aus, um den entkoppelten Code anzusehen:
repo init -u https://android.googlesource.com/platform/manifest -b ub-automotive-masterrepo sync -cq -j4
Weitere Informationen zum Arbeiten mit AOSP-Quellcode finden Sie unter Repo Client initialisieren.
Code erstellen
Sie können den Code mit Android Studio oder über die Befehlszeile erstellen.
Android Studio
So erstellen Sie den Code in Android Studio:
Importieren Sie in Android Studio die folgende Build-Datei:
packages/apps/Car/libs/aaos-apps-gradle-project/build.gradleAchten Sie darauf, dass das Gradle-JDK auf Version 11 oder höher festgelegt ist:
Abbildung 1 : Gradle-JDK in Android Studio auf Version 11 festlegen
Befehlszeile
So erstellen Sie den Code über die Befehlszeile:
Legen Sie den Speicherort des Android SDK mit einer der folgenden Methoden fest:
Erstellen Sie
packages/apps/Car/libs/aaos-apps-gradle-project/local.propertiesund legen Sie dann die darin enthaltene Eigenschaftsdk.dirfest. Android Studio kann dies beim Öffnen eines Projekts automatisch tun. Verwenden Sie beispielsweisesdk.dir=/Users/MY-USERNAME/Library/Android/sdk.oder
Legen Sie die Umgebungsvariable
ANDROID_SDK_ROOTmit dem Pfad zum Android SDK fest.
Öffnen Sie eine Eingabeaufforderung oder ein Shell-Fenster.
Wechseln Sie zu
packages/apps/Car/libs/aaos-apps-gradle-project.Führen Sie den folgenden Befehl aus:
./gradlew assemble
Mindest-API-Level
Jede entkoppelte App funktioniert auf Android-Plattformen mit einer Version, die gleich oder höher
als die
minSdkVersion ist. In der folgenden Tabelle sind die minimalen API-Versionen aufgeführt, die von den einzelnen Apps unterstützt werden:
| App | Mindest-API-Level |
|---|---|
| Kalender | 29 |
| Auto-UI-Bibliothek | 29 |
| CompanionDevice | 29 |
| Telefon | 31 |
| Medien | 30 |
| Messenger (SMS) | 30 |
| AOSP-Host | 29 |
| App-Sperre | 34 |
Vordefinierte App in ein System-Image einbinden
Wenn die Android-Plattformversion von der App unterstützt wird (siehe Tabelle im vorherigen Abschnitt), können Sie das APK dem System-Image hinzufügen. Die Schritte zur Einbindung unterscheiden sich jedoch je nach Android-Plattformversion.
Android 13 und höher
Android 13 und höher enthält keinen Quellcode für entkoppelte Apps. Sie können jedoch ein vordefiniertes APK in den Plattform-Build einbinden, z. B. für CDD-Konformitätstests oder die Bereitstellung privilegierter Apps. Geben Sie das APK mit der
android_app_import Soong-Regel an, wie im folgenden Beispiel gezeigt:
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
Android 12 und niedriger enthält Quellcode für entkoppelte Apps. Sie können jedoch trotzdem ein vordefiniertes APK angeben, das eingebunden werden soll. Da Soong standardmäßig Quellcode Vorrang vor einem vordefinierten APK einräumt, müssen Sie das Flag prefer in der Regel android_app_import auf true setzen, wie im folgenden Beispiel gezeigt:
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
}
Details zu entkoppelten Apps
| App | Privilegierte entkoppelte App System signiert |
Privilegierte entkoppelte App nicht vom System signiert |
Entkoppelte App muss nicht auf der Systempartition sein |
|---|---|---|---|
| Verteilung von Updates | OTA | OTA oder Google Play | OTA oder Google Play |
| AOSP-Host | X | ||
| Kalender | X | ||
| CompanionDeviceSupport | X | ||
| Kontrollzentrum (Multi-Display) | X | ||
| Telefon | X | ||
| Medien | X | ||
| Messenger (SMS) | X | ||
| Sperre für sensible Apps | X |