Guide d'intégration

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é :

  1. Exécutez ce qui suit :
    repo init -u https://android.googlesource.com/platform/manifest -b ub-automotive-master
    repo sync -cq -j4
    
  2. 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 :

  1. Dans Android Studio, importez ce fichier de build :
    packages/apps/Car/libs/aaos-apps-gradle-project/build.gradle
  2. Assurez-vous de définir le Gradle JDK dans Android Studio sur au moins la version 11 :


    Figure 1. Version 11.
  3. Créez les APK souhaités.

Ligne de commande

Pour construire le code à partir de la ligne de commande :

  1. 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, utilisez sdk.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.
  2. Ouvrez une invite de commande ou une fenêtre shell.
  3. Accédez à packages/apps/Car/libs/aaos-apps-gradle-project .
  4. 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