Apps, die Dialer, Media, Car UI Library und SMS enthalten, gelten als entkoppelte Apps (d. h., sie sind von der Android-Plattform entkoppelt). Solche Apps enthalten die Logik für den Empfang von Daten von der Smartphone-Begleit-App und die Benutzeroberfläche auf der Fahrzeugseite, einschließlich Einstellungen für die Verknüpfung und die Registrierung von Funktionen. APKs, die aus nicht gebündeltem Code erstellt wurden, funktionieren mit mehreren Versionen der Plattform.
Code ansehen
Führen Sie Folgendes aus, um sich den nicht gebündelten Code anzusehen:
repo init -u https://android.googlesource.com/platform/manifest -b ub-automotive-master
repo sync -cq -j4
Weitere Informationen zur Arbeit 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.gradle
Prüfen Sie, ob das Gradle-JDK auf Version 11 oder höher festgelegt ist:
Abbildung 1: Legen Sie in Android Studio das Gradle-JDK auf Version 11 fest.
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.properties
und legen Sie dann das darin enthaltene Attributsdk.dir
fest. Android Studio kann dies beim Öffnen eines Projekts automatisch erledigen. Verwenden Sie zum Beispielsdk.dir=/Users/MY-USERNAME/Library/Android/sdk
.oder
Legen Sie die Umgebungsvariable
ANDROID_SDK_ROOT
auf den Pfad zum Android SDK fest.
Öffnen Sie eine Eingabeaufforderung oder ein Shell-Fenster.
Geh zu
packages/apps/Car/libs/aaos-apps-gradle-project
.Führen Sie den folgenden Befehl aus:
./gradlew assemble
Mindestanforderungen an API-Levels
Jede entkoppelte App funktioniert auf Android-Plattformen mit einer Version, die gleich oder höher als die minSdkVersion
ist. In der folgenden Tabelle ist die von jeder App unterstützte Mindest-API-Version aufgeführt:
App | Mindest-API-Level |
---|---|
Kalender | 29 |
Auto-UI-Bibliothek | 29 |
CompanionDevice | 29 |
Telefon | 31 |
Medien | 30 |
Messenger (SMS) | 30 |
AOSP-Host | 29 |
Vordefinierten Build 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 Integrationsschritte unterscheiden sich jedoch je nach Android-Plattformversion.
Android 13 oder höher
Android 13 und höher enthalten keinen Quellcode für nicht gebündelte Apps. Sie können jedoch ein vorgefertigtes APK in den Plattform-Build einfügen, um Anwendungsfälle wie CDD-Konformitätstests oder die Bereitstellung privilegierter Apps zu ermöglichen. Verwenden Sie die Soong-Regel android_app_import
, um das APK anzugeben, 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 nicht gebündelte Apps, aber Sie können trotzdem ein vorkompiliertes APK angeben, das enthalten sein soll. Da in Soong standardmäßig dem Quellcode Vorrang vor einem Prebuilt eingeräumt wird, muss das Flag prefer
in der Regel android_app_import
auf true
gesetzt werden, 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 nicht gebündelten Apps
App/Vertrieb | Privilegierte, nicht gebündelte System-App signiert |
Privilegiert, nicht gebündelt Nicht systembezogen signiert |
Nicht gebündelte müssen nicht auf der Systempartition sein |
---|---|---|---|
App – Kalender | X | ||
App – CompanionDeviceSupport | X | ||
App – Telefon | X | ||
App – AOSP-Host | X | ||
App – Media | X | ||
App – Messenger (SMS) | X | ||
Verteilung aktualisieren | OTA | OTA oder Google Play | OTA oder Google Play |