Les applications qui incluent Téléphone, Contenus multimédias, la bibliothèque Car UI et SMS sont considérées comme des applications dissociées (c'est-à-dire qu'elles sont dissociées de la plate-forme Android). Ces applications incluent la logique permettant de recevoir des données de l'application compagnon du téléphone et l'expérience utilisateur côté voiture, y compris les paramètres d'association et d'inscription aux fonctionnalités. Les APK créés à partir de code dissocié fonctionnent avec plusieurs versions de la plate-forme.
Consulter le code
Pour consulter le code dissocié, exécutez la commande suivante :
repo init -u https://android.googlesource.com/platform/manifest -b ub-automotive-masterrepo sync -cq -j4
Pour en savoir plus sur l'utilisation du code source AOSP, consultez Initialiser le client Repo.
Compiler le code
Vous pouvez compiler le code à l'aide d'Android Studio ou à partir de la ligne de commande.
Android Studio
Pour compiler le code dans Android Studio :
Dans Android Studio, importez le fichier de compilation suivant :
packages/apps/Car/libs/aaos-apps-gradle-project/build.gradleAssurez-vous que le JDK Gradle est défini sur la version 11 ou ultérieure :
Figure 1. Définissez le JDK Gradle sur la version 11 dans Android Studio.
Ligne de commande
Pour compiler le code à partir de la ligne de commande :
Définissez l'emplacement du SDK Android à l'aide de l'une des méthodes suivantes :
Créez
packages/apps/Car/libs/aaos-apps-gradle-project/local.properties, puis définissez la propriétésdk.dirqu'il contient. Android Studio peut le faire automatiquement lors de l'ouverture d'un projet. Par exemple, utilisezsdk.dir=/Users/MY-USERNAME/Library/Android/sdk.ou
Définissez la variable d'environnement
ANDROID_SDK_ROOTavec le chemin d'accès au SDK Android.
Ouvrez une invite de commande ou une fenêtre shell.
Accédez à
packages/apps/Car/libs/aaos-apps-gradle-project.Exécutez la commande suivante :
./gradlew assemble
Niveaux d'API minimaux requis
Chaque application dissociée fonctionne sur les plates-formes Android dont la version est égale ou supérieure
à sa
minSdkVersion. Le tableau suivant répertorie la version d'API minimale compatible avec chaque application :
| Application | Niveau d'API minimal |
|---|---|
| Agenda | 29 |
| Bibliothèque Car UI | 29 |
| CompanionDevice | 29 |
| Téléphone | 31 |
| Contenus multimédias | 30 |
| Messenger (SMS) | 30 |
| Hôte AOSP | 29 |
| Verrouillage d'application | 34 |
Intégrer une version prédéfinie dans une image système
Si la version de la plate-forme Android est compatible avec l'application (voir le tableau de la section précédente), vous pouvez ajouter l'APK à l'image système. Toutefois, les étapes d'intégration diffèrent selon les versions de la plate-forme Android.
Android 13 et versions ultérieures
Android 13 et versions ultérieures n'incluent pas de code source pour les applications dissociées, mais vous pouvez inclure un APK prédéfini dans la compilation de la plate-forme pour des cas d'utilisation tels que les tests de conformité CDD ou le provisionnement d'applications privilégiées. Pour spécifier l'APK, utilisez la
android_app_import règle Soong, comme illustré dans l'exemple suivant :
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 et versions antérieures
Android 12 et versions antérieures incluent le code source des applications dissociées, mais vous pouvez toujours spécifier un APK prédéfini à inclure. Étant donné que Soong donne par défaut la priorité au code source par rapport à une version prédéfinie, il est nécessaire de définir l'indicateur prefer sur true dans la règle android_app_import, comme illustré dans l'exemple suivant :
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
}
Détails de l'application dissociée
| Application | Dissociée privilégiée système signée |
Dissociée privilégiée non signée par le système |
Dissociée n'a pas besoin d'être sur la partition système |
|---|---|---|---|
| Distribution des mises à jour | OTA | OTA ou Google Play | OTA ou Google Play |
| Hôte AOSP | X | ||
| Agenda | X | ||
| CompanionDeviceSupport | X | ||
| Panneau de contrôle (multi-écran) | X | ||
| Téléphone | X | ||
| Contenus multimédias | X | ||
| Messenger (SMS) | X | ||
| Verrouillage d'application sensible | X |