Présentation d'Android Automotive OS

Interface utilisateur d'Android Automotive OS
Figure 1: Android Automotive OS

Android Automotive OS est une version d'Android optimisée pour une utilisation en voiture, qui s'appuie sur la plate-forme Android de base. Les voitures avec Google intégré exécutent Android Automotive OS et sont livrées avec des applications et des services Google, y compris Google Play, Gemini, l'Assistant Google et Google Maps.

En savoir plus sur le matériel Android Automotive OS

Pour en savoir plus sur les spécifications matérielles minimales requises pour les appareils Android Automotive OS, consultez la section Automotive Requirements du document de définition de compatibilité Android (CDD) pour la ou les versions d'Android compatibles avec votre application.

Encoches

Comme pour les autres facteurs de forme Android, les encoches sont compatibles avec les appareils Android Automotive OS dotés d'écrans non rectangulaires. Toutefois, la taille et la forme des encoches présentes dans les voitures peuvent être très différentes de celles des autres facteurs de forme. Pour obtenir des instructions détaillées, consultez Utiliser des encarts de fenêtre et des encoches.

Audio

Les appareils Android Automotive OS sont généralement des appareils à volume fixe. Pour en savoir plus sur l'impact de ce changement sur votre application, consultez Utiliser des appareils à volume fixe.

Comprendre le logiciel Android Automotive OS

Bien qu'Android Automotive OS soit basé sur le même système d'exploitation de base que celui utilisé par d'autres facteurs de forme, il présente certaines fonctionnalités supplémentaires qui lui sont propres et qui peuvent avoir un impact sur la façon dont les applications peuvent être développées et utilisées.

UI du système

Vous devez connaître certaines différences dans le fonctionnement de ces éléments d'UI du système dans les voitures.

Contrairement à d'autres facteurs de forme, les appareils Android Automotive OS ne sont pas tenus de disposer d'une fonctionnalité de retour matériel ou logiciel. Lorsqu'elles ne sont pas exécutées en mode de compatibilité, les activités implémentées par votre application doivent inclure des fonctionnalités d'UI pour permettre la navigation dans l'application afin de respecter la AN-1 consigne de qualité.

Mise en page de la barre système

Comme pour les autres facteurs de forme, Android Automotive OS inclut des barres système telles que des barres d'état et des barres de navigation. Dans les voitures, ces barres peuvent être dimensionnées et positionnées différemment que sur d'autres facteurs de forme. Par exemple, les barres de navigation peuvent être positionnées à gauche, à droite ou en bas de l'écran. Même si une barre d'état s'affiche en haut et une barre de navigation en bas (comme c'est le cas pour la plupart des téléphones et des tablettes), la taille de ces éléments sera probablement beaucoup plus grande dans les voitures.

De plus, alors que les encoches sur les appareils mobiles sont généralement contenues dans les limites des barres système, ce n'est pas le cas dans les voitures.

Pour obtenir des instructions détaillées, consultez Utiliser des encarts de fenêtre et des encoches.

Mode immersif

Android Automotive OS permet aux OEM de choisir si les applications peuvent afficher ou masquer les barres système pour passer en mode immersif et quitter ce même mode. En empêchant les applications de masquer les barres système, les OEM peuvent s'assurer que les commandes du véhicule, telles que la climatisation, sont toujours accessibles sur l'écran.

Restrictions liées à l'expérience utilisateur

Les restrictions liées à l'expérience utilisateur sont une fonctionnalité intégrée à Android Automotive OS qui permet de gérer les problèmes de distraction du conducteur. Les restrictions liées à l'expérience utilisateur empêchent automatiquement l'utilisation d'applications qui n'ont pas été optimisées pour une utilisation pendant la conduite.

L'activité de blocage s'affiche au-dessus d'une application qui n'est pas optimisée contre la distraction.
Figure 2: Une application bloquée par des restrictions liées à l'expérience utilisateur

L'ensemble exact de règles qui déterminent comment et quand les restrictions liées à l'expérience utilisateur sont actives est déterminé par les constructeurs automobiles. Ces règles peuvent varier selon la zone géographique. Par exemple, le même véhicule vendu en Europe peut être soumis à des règles différentes de celles vendues aux États-Unis.

Les règles de restriction liées à l'expérience utilisateur peuvent également varier en fonction de l'écran d'un véhicule. Par exemple, il est possible qu'un écran central dans le champ de vision du conducteur soit limité lorsque le véhicule est en mouvement, tandis qu'un écran passager reste illimité.

Si votre application doit s'adapter aux restrictions liées à l'expérience utilisateur, faites-y référence directement. N'essayez pas de rétro-ingénierie de leur implémentation. Par exemple, si vous supposez que les restrictions liées à l'expérience utilisateur sont actives lorsque le véhicule n'est pas en mode Parking, vous risquez de limiter inutilement une application s'exécutant sur un écran passager.

Optimisation contre la distraction

Par défaut, les activités ne peuvent pas être exécutées lorsque les restrictions liées à l'expérience utilisateur sont actives afin de limiter les distractions du conducteur. Pour indiquer au système qu'une activité doit continuer à s'exécuter lorsque le véhicule est en mouvement, l'élément <meta-data> suivant peut être ajouté dans l'élément <activity> correspondant.

<activity ...>
  <meta-data android:name="distractionOptimized" android:value="true">
</activity>

Lorsque vous développez des applications pour Android Automotive OS, ces métadonnées ne doivent être présentes dans votre fichier manifeste que lorsque vous déclarez l'élément de fichier manifeste<activity> pour le CarAppActivity d'une application créée à l'aide de la bibliothèque d'applications pour voitures. Aucune autre activité ne doit être marquée comme optimisée contre la distraction. Si c'est le cas, votre application sera refusée lors de son envoi au Google Play Store.

Accessibilité

La prise en charge de l'accessibilité pour Android Automotive OS n'est pas aussi étendue que sur d'autres facteurs de forme. TalkBack, Switch Access et Voice Access ne sont pas disponibles sur les appareils Android Automotive OS.

Les préférences de sous-titrage sont compatibles avec les appareils Android Automotive OS. Pour en savoir plus sur l'intégration, consultez Adopter les paramètres de sous-titrage du système.

Sélection du réseau

Android Automotive OS est compatible avec la sélection de réseau par application (PANS), qui permet aux OEM de router le trafic réseau mobile vers différents réseaux, application par application.

La plupart des applications n'utilisent que le réseau par défaut qui leur est attribué et ne bénéficient que de cette fonctionnalité. Par exemple, l'OEM peut payer le trafic réseau de votre application même si l'utilisateur ne dispose pas de son propre forfait Internet. Si votre application (ou l'une de ses dépendances) repose sur des réseaux autres que celui par défaut, elle peut ne pas bénéficier des préférences définies par l'OEM. Pour obtenir des conseils sur l'utilisation de réseaux autres que celui par défaut, consultez Lire l'état du réseau.

Fonctionnalités du système

Vous pouvez détecter si une fonctionnalité donnée est disponible à l'aide de PackageManager::hasSystemFeature et ajuster le comportement de votre application en conséquence.

Fonctionnalités matérielles

Comme pour les autres facteurs de forme non mobiles, les fonctionnalités matérielles disponibles dans les voitures peuvent différer de celles des appareils mobiles.

Orientation de l'écran

Comme les téléviseurs, les voitures sont des appareils à orientation fixe. Contrairement aux téléviseurs, elles sont disponibles en orientation portrait et paysage. Pour s'assurer que les applications conçues pour Android Automotive OS peuvent être distribuées à tous les véhicules, elles ne doivent pas avoir d'exigence de fonctionnalité explicite ou implicite pour les fonctionnalités android.hardware.screen.landscape ou android.hardware.screen.portrait.

Emplacement du réseau

De nombreux appareils Android Automotive OS n'implémentent pas la pile de téléphonie utilisée pour fournir l'emplacement du réseau et ne signalent donc pas la fonctionnalité système android.hardware.location.network. Bien que l'emplacement du réseau ne soit pas disponible, l'accès à la position approximative est toujours pris en charge. Consultez Position approximative sur Android Automotive OS.

Fonctionnalités logicielles

Certaines fonctionnalités logicielles courantes sur d'autres facteurs de forme peuvent ne pas être compatibles avec les appareils Android Automotive OS. Par exemple, les fonctionnalités suivantes ne sont pas disponibles sur de nombreux véhicules Android Automotive OS :

Répondre aux exigences de fonctionnalité de Google Play

Pour être distribuées aux voitures via Google Play, les applications conçues pour Android Automotive OS doivent inclure un <uses-feature> élément dans le AndroidManifest.xml fichier pour la android.hardware.type.automotive fonctionnalité :

<manifest ...>
  ...
  <!--
    See Choose a track for Android Automotive OS
    for details on how to choose which value to use for the android:required attribute.
  -->
  <uses-feature
      android:name="android.hardware.type.automotive"
      android:required="[true|false]">
  ...
</manifest>

De plus, si votre application comporte une déclaration de fonctionnalité explicite avec android:required="true" ou une exigence de fonctionnalité implicite pour l'une des fonctionnalités suivantes, vous devez la mettre à jour ou la supprimer afin que les exigences de fonctionnalité de votre application n'empêchent pas sa distribution à des véhicules autrement compatibles :

Pour les fonctionnalités explicitement déclarées avec android:required="true", vous pouvez effectuer l'une des opérations suivantes :

  • Supprimez l'élément <uses-feature> si la fonctionnalité n'est pas requise de manière implicite.
  • Déclarez explicitement la fonctionnalité avec android:required="false".

Pour les fonctionnalités requises de manière implicite, vous pouvez effectuer l'une des opérations suivantes :

  • Déclarez explicitement la fonctionnalité avec android:required="false".
  • Supprimez ou mettez à jour les valeurs de fichier manifeste qui introduisent l'exigence implicite sur la fonctionnalité.

La modification des déclarations de fonctionnalités dans votre fichier manifeste n'a pas d'incidence sur le fonctionnement réel de votre application. Vérifiez donc qu'elle fonctionne toujours correctement sans ces fonctionnalités.

Questions fréquentes

Quels véhicules sont équipés de Google intégré ?

Consultez le site Voitures avec Google intégré pour obtenir la liste des OEM dont les modèles sont équipés de Google intégré. Les spécifications matérielles et d'autres informations sur les appareils sont disponibles dans le catalogue d'appareils de la Play Console.