Apps, die Telefon, Medien, die Auto-UI-Mediathek und SMS enthalten, gelten als nicht paketierte Apps, d. h., sie sind nicht mit der Android-Plattform verknüpft. Diese Apps enthalten die Logik zum Empfangen von Daten aus der Smartphone-Begleiter-App und die UX auf der Seite des Autos, 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 auschecken
Führen Sie zum Auschecken des entpackten Codes Folgendes aus:
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
Achten Sie darauf, dass das Gradle JDK auf Version 11 oder höher festgelegt ist:
Abbildung 1: Legen Sie in Android Studio 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 die darin enthaltene Propertysdk.dir
fest. Android Studio kann dies automatisch beim Öffnen eines Projekts tun. Verwenden Sie zum Beispielsdk.dir=/Users/MY-USERNAME/Library/Android/sdk
.oder
Legen Sie die Umgebungsvariable
ANDROID_SDK_ROOT
mit dem 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
Mindest-API-Level
Jede nicht paketierte App funktioniert auf Android-Plattformen mit einer Version, die der minSdkVersion
entspricht oder höher ist. In der folgenden Tabelle sind die Mindest-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 |
Vorab-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 enthält keinen Quellcode für nicht gebundelte Apps. Sie können jedoch ein vorgefertigtes APK in den Plattformbuild aufnehmen, um Anwendungsfälle wie CDD-Compliance-Tests 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 enthalten Quellcode für nicht gebundelte Apps. Sie können jedoch weiterhin ein vorgefertigtes APK angeben. Da Soong standardmäßig dem Quellcode Vorrang vor einem vordefinierten Code einräumt, 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/Distribution | Berechtigtes nicht gebündeltes System, das |
Berechtigte, nicht paketierte nicht vom System signierte |
Nicht gebundelte müssen sich nicht in der Systempartition befinden |
---|---|---|---|
App: Google Kalender | X | ||
App – CompanionDeviceSupport | X | ||
App – Telefon | X | ||
App – AOSP-Host | X | ||
App – Medien | X | ||
App – Messenger (SMS) | X | ||
Verteilung aktualisieren | OTA | OTA oder Google Play | OTA oder Google Play |