Android Open Source Project (AOSP) Automotive App Host fait partie de la bibliothèque Car App utilisés par les développeurs tiers pour activer des applications pour Android Automotive. L'hôte d'application est un système qui permet aux applications automobiles tierces d'afficher des composants d'interface utilisateur (UI) de style OEM en leur nom.
Pour exécuter des applications tierces, l'application tierce et l'hôte de l'application AOSP Automotive doivent être installé:
- Automotive App Host fournit aux applications tierces un ensemble de modèles et de composants d'interface utilisateur optimisés pour les véhicules, y compris en termes de facilité d'utilisation et de sécurité.
- Les OEM peuvent appliquer un style à ces modèles et composants d'interface utilisateur.
- Résultat : Les applications tierces sont visuellement bien intégrées au du système d'infoloisirs de l'OEM.
Cette page explique comment générer l'hôte d'application Automotive App Host d'AOSP à partir du projet Gradle dans le
branche ub-automotive
, puis comment intégrer l'hôte d'application Automotive App Host d'AOSP à une voiture
cibles.
Consulter le code
Pour obtenir le code dégroupé:
- Exécutez la commande suivante:
repo init -u https://android.googlesource.com/platform/manifest -b ub-automotive-master repo sync -j4
Pour en savoir plus sur l'utilisation du code source AOSP, consultez Initialisez un client de dépôt.
- Installez Android Studio.
Créer le fichier APK hôte AOSP
- Consultez
ub-automotive
, puis ouvrez le projet Gradle souspackages/apps/Car/Templates/Host
- Pour configurer le projet avec le SDK Android, configurez le
local.properties
. Vous trouverez le chemin d'accès dans les paramètres du SDK Android dans Android dans Google Marketing Platform Studio.sdk.dir=${path_to_android_sdk_location}
- Créez l'APK hôte en tant que projet Gradle standard. Par exemple, exécutez la commande
gradle
:./gradlew :app:assembleDebug
Le fichier APK se trouve dans:
packages/apps/Car/Templates/Host/app/build/outputs/apk/debug/app-debug.apk
Intégrer l'hôte AOSP
- Créez un fichier
Android.mk
pour inclure le contenu suivant:LOCAL_PATH := $(my-dir) ################## Start of AOSPHost target ################## include $(CLEAR_VARS) LOCAL_MODULE := CarAOSPHost LOCAL_LICENSE_KINDS := legacy_notice LOCAL_LICENSE_CONDITIONS := notice LOCAL_MODULE_OWNER := google LOCAL_SRC_FILES := AOSPHost.apk LOCAL_MODULE_CLASS := APPS LOCAL_MODULE_TAGS := optional LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX) LOCAL_BUILT_MODULE_STEM := package.apk LOCAL_CERTIFICATE := PRESIGNED LOCAL_PRIVILEGED_MODULE := true LOCAL_PRODUCT_MODULE := true LOCAL_DEX_PREOPT := false include $(BUILD_PREBUILT)
- Renommez
app-debug.apk
enAOSPHost.apk
et placez l'APK dans le même dossier queAndroid.mk
. - Ajoutez le module
CarAOSPHost
à vos cibles en tant quePRODUCT_PACKAGES
:PRODUCT_PACKAGES += \ CarAOSPHost \
Ajouter la configuration des autorisations
- Créez un fichier nommé
com.android.car.templates.host.xml
qui contiendra les éléments suivants:<permissions> <!-- Rename the package to com.android.car.templates.host --> <privapp-permissions package="com.android.car.templates.host"> <!-- To be able to display activities in the cluster --> <permission name="android.car.permission.CAR_DISPLAY_IN_CLUSTER" /> <!-- To be able to show navigation state (turn by turn directions) in the cluster.--> <permission name="android.car.permission.CAR_NAVIGATION_MANAGER" /> <!-- To be considered a system-approved host --> <permission name="android.car.permission.TEMPLATE_RENDERER" /> </privapp-permissions> <!-- Declare support for templated applications. --> <feature name="android.software.car.templates_host" /> </permissions>
- Dans votre cible, ajoutez le fichier de configuration à vos cibles:
PRODUCT_COPY_FILES += \ <the file root>/com.android.car.templates.host.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/com.android.car.templates.host.xml
Créer la cible
Lorsque vous créez la cible, l'hôte est installé et l'autorisation est accordée:
… android.car.permission.CAR_NAVIGATION_MANAGER: granted=true android.car.permission.CAR_DISPLAY_IN_CLUSTER: granted=true android.car.permission.TEMPLATE_RENDERER: granted=true …
Tester l'intégration
Pour créer et installer les exemples, consultez ce projet GitHub, car-samples/car_app_library.