Cette page explique comment intégrer des applications dégroupées. Les applications qui incluent Dialer, Media, Car UI Library et SMS sont considérées comme des applications dégroupées. Ces applications sont séparées de la plate-forme Android et incluent la logique de réception des données de l'application compagnon du téléphone et de l'UX côté voiture, y compris les paramètres d'association et d'inscription aux fonctionnalités.
Les APK créés à partir du code dégroupé fonctionnent avec plusieurs versions de la plateforme.
Consultez le code
Pour consulter le code dégroupé :
- Exécutez ce qui suit :
repo init -u https://android.googlesource.com/platform/manifest -b ub-automotive-master repo sync -cq -j4
- Pour en savoir plus sur l'utilisation du code source AOSP, consultez Initialisation d'un client Repo .
Construire le code
Android Studio
Pour créer le code dans Android Studio :
- Dans Android Studio, importez ce fichier de build :
packages/apps/Car/libs/aaos-apps-gradle-project/build.gradle
- Assurez-vous de définir le Gradle JDK dans Android Studio sur au moins la version 11 :
Figure 1. Version 11. - Créez les APK souhaités.
Ligne de commande
Pour construire le code à partir de la ligne de commande :
- Définissez l'emplacement du SDK Android de l'une des deux manières suivantes :
- Créez
packages/apps/Car/libs/aaos-apps-gradle-project/local.properties
, puis définissez la propriétésdk.dir
qu'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_ROOT
avec le chemin d'accès au SDK Android.
- Créez
- 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 minimum requis
Chaque application dégroupée fonctionne sur les plateformes Android avec une version égale ou supérieure à sa minSdkVersion
. Le tableau suivant répertorie la version minimale de l'API prise en charge par chaque application :
Application | Niveau API minimum |
---|---|
Calendrier | 29 |
Bibliothèque d'interface utilisateur de voiture | 29 |
Appareil compagnon | 29 |
Numéroteur | 31 |
Médias | 30 |
SMS | 30 |
Hôte AOSP | 29 |
Intégration d'un prébuild dans une image système
Images Android 13 et supérieures
Le code dégroupé est supprimé de la plateforme Android 13. Par conséquent, l’ajout d’APK prédéfinis dans les versions de plateforme peut être nécessaire pour :
- Tests de conformité CDD
- Provisionner des applications privilégiées
Ceci est réalisé avec la règle android_app_import
Soong :
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
Tant que la version de la plateforme Android est prise en charge par l'application (voir tableau ci-dessus), l'APK peut être ajouté à cette image système. Cependant, la plupart des applications dégroupées ont des versions précédentes du code source incluses dans les plates-formes inférieures à Android 13. Par défaut, Soong donne la priorité au code source par rapport à un code source prédéfini. Par conséquent, il est nécessaire de définir l'indicateur prefer
sur true
dans la règle android_app_import
:
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, }
Applications répertoriées par type dégroupé
Application | Dégroupé privilégié | Dégroupé (Pas besoin d'être sur la partition système) | |
---|---|---|---|
Système signé | Non signé par le système | ||
Calendrier | X | ||
Appareil compagnon | X | ||
Numéroteur | X | ||
Hôte AOSP | X | ||
Médias | X | ||
SMS | X | ||
Mise à jour de la distribution | OTA | OTA ou Google Play | OTA ou Google Play |