Tester les applications Android pour voitures

Tester votre application automobile permet d'éviter les résultats inattendus tout en assurant une expérience utilisateur satisfaisante. La façon dont vous testez votre application varie selon qu'elle est exécutée sur Android Auto ou sur Android Automotive OS.

Consultez l'une des sections suivantes pour en savoir plus :

Tester votre application pour Android Auto

L'unité principale pour ordinateur (ou DHU, Desktop Head Unit) permet à votre ordinateur de développement d'émuler une unité principale Android Auto afin que vous puissiez exécuter et tester des applications dans ce contexte. La DHU s'exécute sur les systèmes Windows, macOS et Linux.

Cette section explique comment installer et exécuter la DHU sur votre ordinateur de développement pour tester vos applications. Après avoir installé la DHU, vous pouvez tester vos applications Android Auto en y connectant votre appareil mobile via l'un des mécanismes de connexion compatibles décrits dans la section Exécuter la DHU.

Pour signaler des bugs ou demander des fonctionnalités liées à la DHU, utilisez l'outil de suivi des problèmes.

Installer la DHU

Procédez comme suit pour installer la DHU sur votre ordinateur de développement :

  1. Activez le mode développeur sur un appareil mobile équipé d'Android 6.0 (niveau d'API 23) ou version ultérieure, comme décrit dans la section Configurer les options pour les développeurs sur l'appareil.
  2. Compilez et installez votre application sur l'appareil.
  3. Installez Android Auto sur l'appareil. Si Android Auto est déjà installé, assurez-vous d'utiliser la dernière version.
  4. Dans Android Studio, ouvrez SDK Manager et accédez à SDK Tools, puis téléchargez le package Android Auto Desktop Head Unit Emulator.

    Affichage de la version 2.0 de la DHU dans SDK Manager.

    La DHU est installée dans le répertoire SDK_LOCATION/extras/google/auto/.

  5. Sur les systèmes Linux ou macOS, exécutez la commande suivante dans ce répertoire pour vous assurer que le binaire de la DHU est exécutable :

    chmod +x ./desktop-head-unit
    
Étapes supplémentaires pour Linux

Si vous exécutez la version 2.x de la DHU sur un système Linux, vous devez installer des bibliothèques supplémentaires. Le binaire de la DHU dépend de GLIBC version 2.32 ou ultérieure. Pour vérifier la version GLIBC de votre système, exécutez la commande suivante :

ldd --version

Si elle est antérieure à la version 2.32, remplacez GLIBC par la version 2.32 ou une version ultérieure, ce qui peut nécessiter une mise à niveau du système d'exploitation vers une version compatible avec la version 2.32 (ou ultérieure) de GLIBC.

Vous devez également installer les bibliothèques libc++1 et libc++abi1. La procédure d'installation varie en fonction de votre distribution Linux. Par exemple, sur les distributions Linux dérivées de Debian, vous pouvez installer les bibliothèques à l'aide de la commande suivante :

sudo apt-get install libc++1 libc++abi1

Installer les versions préliminaires de la DHU

Pour accéder aux versions préliminaires de la DHU, vous pouvez soit utiliser une version preview d'Android Studio soit définir la version de mise à jour de votre installation Android Studio existante sur la version bêta.

Exécuter la DHU

Après avoir installé la DHU, vous pouvez tester vos applications Android Auto en connectant votre appareil mobile et votre station de travail via un câble USB. Pour exécuter la DHU, connectez votre appareil mobile à un ordinateur de développement à l'aide du mode accessoire (recommandé pour la version 2.x de la DHU) ou d'un tunnel ADB.

Se connecter en mode accessoire (version 2.x de la DHU uniquement)

Android Auto permet de se connecter à la version 2.x de la DHU avec le protocole Android Open Accessory (AOA) à l'aide de la commande suivante :

./desktop-head-unit --usb

Par défaut, la DHU analyse la liste des appareils USB disponibles et tente de se connecter au premier appareil compatible. Pour cibler un appareil spécifique, incluez son ID dans la commande --usb, comme suit :

./desktop-head-unit --usb=[DEVICE_ID]

Se connecter à l'aide de la tunnelisation ADB

Cette méthode nécessite la configuration d'une connexion au serveur de l'unité principale Android Auto via Android Debug Bridge (adb). Pour configurer la tunnelisation et exécuter la DHU, procédez comme suit :

  1. Effectuez l'une des opérations suivantes pour ouvrir les paramètres Android Auto, en fonction de la version Android exécutée sur l'appareil :

    • Android 10 ou version ultérieure : sur l'appareil, appuyez sur Settings > Apps & notifications > See all apps > Android Auto > Advanced > Additional settings in the app (Paramètres > Applications et notifications > Voir toutes les applis > Android Auto > Paramètres avancés > Paramètres supplémentaires dans l'application).
    • Android 9 ou version antérieure : dans l'application Android Auto, appuyez sur le menu, puis sur Settings (Paramètres).
  2. Faites défiler la page jusqu'à la section About (À propos) en bas de l'écran, puis appuyez sur Version pour afficher toutes les informations concernant la version et les autorisations.

  3. Appuyez 10 fois sur la section Infos sur les versions et autorisations.

    La boîte de dialogue Activer les paramètres de développement s'affiche.

  4. Appuyez sur OK.

    Le mode développeur est maintenant activé, et vous pouvez accéder aux options pour les développeurs dans le menu à développer. Vous ne devez activer le mode développeur qu'une seule fois.

  5. Si le serveur de l'unité principale n'est pas déjà en cours d'exécution, ouvrez le menu à développer, puis sélectionnez Start head unit server (Démarrer le serveur de l'unité principale), comme illustré dans la figure 1.

    Sur l'appareil, un service de premier plan apparaît dans la zone de notification et indique que le serveur est en cours d'exécution, comme illustré dans la figure 2.

    Menu contextuel avec options pour les développeurs

    Figure 1 : Menu contextuel avec options pour les développeurs

    Notification indiquant que le serveur de l'unité principale est en cours d'exécution

    Figure 2 : Notification indiquant que le serveur de l'unité principale est en cours d'exécution

  6. Dans l'application Android Auto, appuyez sur Previously connected cars (Voitures connectées précédemment) en haut de la page Settings (Paramètres), puis assurez-vous que l'option Add new cars to Android Auto (Ajouter des voitures à Android Auto) est activée.

  7. Connectez l'appareil mobile à l'ordinateur de développement via un câble USB.

  8. Assurez-vous que l'écran de l'appareil mobile est déverrouillé pour que la DHU puisse être lancée.

  9. Sur la machine de développement, exécutez la commande adb suivante pour transférer les connexions de socket à partir du port 5277 de la machine de développement vers le même numéro de port sur l'appareil Android. Cette configuration permet à la DHU de se connecter au serveur de l'unité principale exécuté sur l'appareil mobile via un socket TCP.

    adb forward tcp:5277 tcp:5277
    
  10. Pour démarrer la DHU, exécutez la commande desktop-head-unit.exe (sous Windows) ou ./desktop-head-unit (sous macOS ou Linux) à partir du répertoire SDK_LOCATION/extras/google/auto/ :

    cd SDK_LOCATION/extras/google/auto
    desktop-head-unit.exe # Windows
    ./desktop-head-unit # macOS or Linux
    

    La DHU est lancée sur la machine de développement

  11. Si vous connectez l'appareil mobile à la DHU pour la première fois, consultez l'écran de l'appareil mobile pour accepter les conditions d'utilisation et ajuster les paramètres d'autorisation si nécessaire.

Une fois la DHU démarrée, vous pouvez exécuter et tester votre application à l'aide des commandes de la console DHU.

Options de ligne de commande

Par défaut, le serveur de l'unité principale se connecte sur le port 5277. Pour remplacer l'hôte ou le port, utilisez l'indicateur --adb=<[localhost:]port>, comme illustré dans l'exemple suivant :

./desktop-head-unit --adb=5999

Par défaut, la DHU émule une unité principale compatible avec Android Auto avec une interface utilisateur à écran tactile. Simulez les gestes de l'utilisateur en cliquant sur la DHU avec une souris. Pour émuler des unités principales qui utilisent un contrôleur rotatif pour l'entrée, vous pouvez utiliser l'indicateur -i controller, comme illustré dans l'exemple suivant :

./desktop-head-unit -i controller

Lorsque la DHU est en mode contrôleur rotatif, vous pouvez utiliser des raccourcis clavier pour simuler des opérations de contrôleur. Pour en savoir plus, reportez-vous à la section sur le contrôleur rotatif. En mode contrôleur rotatif, la DHU ignore les clics de souris. Vous devez utiliser Android Auto avec les opérations de simulation du contrôleur rotatif.

Le tableau suivant répertorie les autres options de ligne de commande pour la DHU :

Option Description
-c, --config=FILE Utilisez le fichier de configuration .ini spécifié. Reportez-vous à la section Configurer la DHU pour en savoir plus.
-i, --input=INPUT Utilisez le mode d'entrée spécifié : touch, rotary ou hybrid.
-a, --adb=HOSTPORT Utilisez le transport ADB. host:port ou portfacultatif. Port 5277 par défaut.
-a, --usb=DEVICE_ID Utilisez le transport USB (AOA). DEVICE_ID facultatif.
-v, --version Affichez les informations sur la version.
-l, --licenses Affichez les licences Open Source.
-h, --headless Appliquez l'exécution en mode sans interface graphique, sans UI.
-t, --always_show_window_on_top Afficher les fenêtres de la DHU au-dessus des autres fenêtres (option désactivée par défaut)
-?, --help Affichez la fiche d'aide.

Guide de l'utilisateur de la DHU

Cette section décrit les fonctionnalités compatibles avec la DHU et explique comment les utiliser.

Saisissez les commandes dans la fenêtre du terminal où vous avez démarré la DHU. Vous pouvez exécuter plusieurs commandes sur la même ligne en les séparant par le caractère ;.

Système

Commande Touche Description
help [command] Affichez l'ensemble complet des commandes. Si un nom de commande est spécifié, affichez l'aide de cette commande.
quit
exit
Alt+Q Quittez l'unité principale.
sleep [seconds] Mettez l'unité principale en veille pendant une seconde. Si un délai est spécifié, la mise en veille correspond au nombre de secondes défini dans seconds. Cette commande peut être utilisée pour rédiger le script de l'unité principale (./desktop-head-unit < script.txt), par exemple dans un environnement CI.
screenshot filename.png Enregistrez une capture d'écran dans filename.png.
licenses Affichez les licences des bibliothèques utilisées dans la DHU.
keycode keycode Envoyez keycode, l'un des noms répertoriés dans la section Codes de clavier.

Écran tactile et pavé tactile

Lorsque l'écran tactile ou le pavé tactile sont activés, le clic dans la fenêtre d'affichage (pour le tactile) ou dans la fenêtre du pavé tactile est enregistré en tant qu'événement tactile.

Pour l'écran tactile, simulez le multipoint en effectuant un clic droit sur l'emplacement du premier doigt, puis en maintenant le bouton droit enfoncé pour le deuxième doigt. Le point central des deux doigts reste fixe. Le déplacement de la souris vous permet de les faire pivoter autour du centre, de les rapprocher ou de les éloigner comme si vous pinciez l'écran.

Sur le pavé tactile, cliquez sur le bouton gauche et maintenez-le enfoncé pour passer d'un élément d'UI à l'autre sur l'écran. Cliquez sur le bouton droit pour sélectionner l'élément actif.

Commande Touche Description
tap x y Simulez un événement tactile aux coordonnées spécifiées.

Contrôleur rotatif

La DHU est compatible avec le contrôleur rotatif. Lorsqu'il est activé, les actions suivantes sont acceptées :

  • Clic vers le haut, le bas, la gauche et la droite du pavé directionnel
  • Rotation dans le sens des aiguilles d'une montre et dans le sens inverse
  • Rotation de l'image (cinq étapes à la fois)
  • Clic vers le bas, puis en arrière sur le contrôleur

Les commandes et les combinaisons de touches sont présentées dans le tableau suivant.

La molette d'une souris envoie des commandes dpad rotate, et le clic avec le bouton central de la souris (généralement la molette) envoie des commandes dpad click.

Notez que la plupart des voitures sont équipées d'un écran tactile. Certaines voitures n'ont qu'un contrôleur rotatif, tandis que d'autres sont équipées d'un système hybride alliant un contrôleur et un écran tactile. Les voitures peuvent également prendre en charge un pavé tactile qui permet de faire des panoramiques de cartes et de saisir du texte. Tenez compte de ces différentes configurations lorsque vous simulez différentes unités principales de véhicule.

Commande Touche Description
dpad {up|down|left|right} Touches fléchées Déplacez le contrôleur rotatif.
dpad {ur|dl|ul|dr} Déplacez le contrôleur rotatif.
dpad soft {left|right} Maj + Touches fléchées Appuyez sur les boutons latéraux disponibles sur certains contrôleurs rotatifs.
dpad click Retour Appuyez sur le contrôleur rotatif.
dpad back Retour arrière Appuyez sur le bouton "Retour" disponible sous certains contrôleurs rotatifs.
dpad rotate left 1 Faites tourner le contrôleur rotatif dans le sens inverse des aiguilles d'une montre (vers la gauche).
dpad rotate right 2 Faites tourner le contrôleur rotatif dans le sens des aiguilles d'une montre (vers la droite).
dpad flick left Maj+1 Faites tourner rapidement le contrôleur rotatif dans le sens inverse des aiguilles d'une montre.
dpad flick right Maj+2 Faites tourner le contrôleur rotatif rapidement dans le sens des aiguilles d'une montre.
dpad 0-9*#+ Pavé numérique

Micro

La DHU permet d'utiliser un micro pour la saisie vocale ou pour lire une piste vocale préenregistrée. Pour plus de commodité, les fichiers audio suivants sont inclus avec la DHU pour les commandes vocales courantes. Ces fichiers audio se trouvent dans le répertoire SDK_LOCATION/extras/google/auto/voice/.

Nom du fichier Texte
navhome.wav Emmène-moi à la maison.
navwork.wav Conduis-moi au bureau.
navsoh.wav Conduis-moi à l'Opéra de Sydney.
navgoogle.wav Conduis-moi au 1600 Amphitheatre Parkway, Californie, États-Unis.
exitnav.wav Quitter la navigation.
howlong.wav Combien de temps reste-t-il jusqu'à ma destination ?
showtraffic.wav Afficher les conditions de circulation.
showalternateroute.wav Affiche d'autres itinéraires.
pause.wav Mets la musique en pause.
nextturn.wav À quel endroit je dois tourner ?

Pour exécuter un fichier .wav individuel dans l'invite de la DHU, utilisez la commande suivante :

mic play /path/to/filename.wav

Le tableau suivant répertorie les autres commandes liées au micro :

Commande Touche Description
mic begin L Activez le micro en simulant un clic sur le bouton du volant, puis attendez l'entrée provenant du micro de l'ordinateur.
mic play filename.wav Activez le micro et lisez l'enregistrement de fichier WAV spécifié. Remarque : vous n'entendez pas le fichier WAV en cours de lecture, mais vous entendez la réponse d'Android Auto.
mic repeat Répétez le dernier enregistrement utilisé avec mic play.
mic reject {on|off} Activez ou désactivez le rejet des requêtes de micro. Lorsque cette option est activée, toutes les requêtes de micro sont refusées.

Capteurs

La DHU permet de simuler les changements de données des capteurs du véhicule à l'aide des commandes suivantes. Pour simuler des données de capteurs et les envoyer à Android Auto, les capteurs correspondants doivent être activés avec le fichier de configuration .ini lors du démarrage de la DHU.

Commande Description
fuel [percentage] Définissez le niveau de carburant sur le pourcentage spécifié ou désactivez-le (en n'indiquant aucune valeur).
range [km] Définissez la plage de kilomètres spécifiés ou désactivez ces données (en n'indiquant aucune valeur).
lowfuel [{on|off}] Définissez le capteur d'avertissement de faible niveau de carburant ou désactivez-le (en n'indiquant aucune valeur).
accel [x] [y] [z] Définissez les valeurs x, y et z (m/s^2) de l'accéléromètre ou désactivez la définition de ces données (en ne spécifiant aucun paramètre). Utilisez le protocole NAN pour ignorer les paramètres facultatifs si nécessaire.
compass bearing [pitch] [roll] Définissez la boussole sur les valeurs d'orientation, de tangage et de roulis (en degrés) spécifiées. Utilisez le protocole NAN pour ignorer les paramètres facultatifs si nécessaire.
gyro [x] [y] [z] Définissez le gyroscope sur la vitesse de rotation x, y ou z (rad/s) ou désactivez la définition de ces données (en ne spécifiant aucun paramètre). Utilisez le protocole NAN pour ignorer les paramètres facultatifs si nécessaire.
location lat long [accuracy] [altitude] [speed] [bearing] Définissez la position sur les valeurs de latitude et de longitude spécifiées, avec éventuellement la précision (m), l'altitude (m), la vitesse (m/s) et l'orientation (degrés). Utilisez le protocole NAN pour ignorer les paramètres facultatifs si nécessaire.
odometer km [current_trip_km] Définissez le compteur kilométrique sur les kilomètres spécifiés avec éventuellement une valeur pour le kilométrage du trajet actuel.
speed [speed] Définissez la vitesse du véhicule sur la valeur spécifiée (m/s) ou désactivez le capteur (en n'inquant aucune valeur).
tollcard {insert|remove} Insérez ou supprimez une carte à péage.

Modes Jour et Nuit

La DHU permet de simuler le passage du mode Jour au mode Nuit, et vice versa, à l'aide des commandes et des combinaisons de touches suivantes :

Commande Touche Description
day Maj+N Activez le mode Jour (luminosité élevée, couleur).
night Ctrl+N Activez le mode Nuit (luminosité faible, contraste élevé).
daynight
nightday
N Activez ou désactivez le mode Jour ou Nuit.

Gestion du ciblage

La DHU permet de simuler si Android Auto cible ou non l'unité principale à l'aide des commandes suivantes :

Commande Description
focus video {on|off|toggle} Activez ou désactivez le ciblage vidéo sur l'unité principale. La désactivation du ciblage vidéo simule le passage de l'unité principale en mode natif.
focus audio {on|off|toggle} Activez ou désactivez la sélection audio sur l'unité principale. La désactivation du ciblage audio simule la lecture de la source audio par l'unité principale.
focus nav {on|off|toggle} Activez ou désactivez le ciblage de la navigation sur l'unité principale. La désactivation du ciblage de la navigation simule l'exécution du système de navigation par l'unité principale.

Restrictions et état de conduite

La DHU permet de simuler certaines restrictions lorsque le véhicule est en mouvement, par exemple en désactivant le clavier et en interdisant les configurations de téléphone, à l'aide des commandes suivantes :

Commande Touche Description
restrict none U Désactivez toutes les restrictions.
restrict all Maj+U Activez toutes les restrictions, par exemple pour simuler la conduite.

Cluster d'instruments

La DHU permet d'émuler un cluster d'instruments. Ce cluster se trouve généralement derrière le volant et affiche des informations de base pendant la navigation sur le prochain virage (comme le nom de la route suivante ou une flèche de virage), la distance ou le temps. Il affiche également des informations sur les appels téléphoniques en cours.

Fenêtre du cluster d'instruments de la DHU affichant des informations sur la navigation et l'état des appels

Vous pouvez activer cette fonctionnalité à l'aide de l'entrée instrumentcluster dans la section [general] du fichier de configuration, ou à l'aide des entrées navcluster ou phonecluster pour contrôler chaque fonctionnalité séparément.

[general]
...
instrumentcluster = true

Affichage des clusters

Certains véhicules possèdent des affichages de clusters capables d'afficher des informations visuelles riches, telles que des cartes. À partir de la version 2.1 de la DHU (actuellement disponible via la version bêta de la mise à jour Android Studio), vous pouvez émuler cet affichage sur votre ordinateur de développement.

Pour ce faire, utilisez un fichier de configuration avec une section d'affichage du cluster ([display]). Les sections [display] acceptent les mêmes options de configuration vidéo que l'affichage principal configuré dans la section [general] du fichier.

Figure 3 : Affichage principal lors de l'exécution de la DHU avec un affichage de cluster secondaire
Figure 4 : Affichage du cluster lors de l'exécution de la DHU avec un affichage de cluster secondaire
...

# The display name following the colon can be whatever you like.
[display:cluster]
# Setting the displaytype as cluster is what lets the DHU know how to handle it.
displaytype = cluster
resolution = 800x480
dpi = 160
...

Vous pouvez ajouter cette configuration directement à un fichier .ini existant ou la réutiliser en la plaçant dans un fichier distinct et en transmettant plusieurs fichiers de configuration lors du lancement de la DHU. Lorsque vous utilisez plusieurs fichiers de configuration, les définitions ultérieures d'une valeur donnée remplacent les précédentes.

# Launch your landscape configuration with your cluster display configuration
./desktop-head-unit -c landscape.ini -c cluster.ini

# Launch the portait configuration with the same cluster display configuration
./desktop-head-unit -c portrait.ini -c cluster.ini

État de la lecture du contenu multimédia

La DHU permet l'affichage d'informations supplémentaires pour indiquer l'état de la lecture d'un contenu multimédia, par exemple le titre en cours de lecture.

Fenêtre d'état de la lecture des contenus multimédias de la DHU affichant les informations de lecture

Vous pouvez activer cette fonctionnalité à l'aide de l'entrée playbackstatus dans la section [general].

[general]
...
playbackstatus = true

Codes de clavier

La DHU fournit un ensemble de codes de clavier par défaut qui simulent l'ensemble des boutons de raccourci, généralement disponibles dans les véhicules. Par exemple, le code de clavier home peut être déclenché dans l'invite de la DHU comme suit :

keycode home

Le tableau suivant répertorie les autres codes de clavier disponibles :

Code de clavier Description
home Accéder à l'écran d'accueil
back Revenir en arrière
call
endcall
Passer un appel ou y mettre fin
search Déclencher la recherche
media_play_pause
media_play
media_pause
Lancer ou mettre en pause les contenus multimédias
media_next
media_previous
Passer à la piste multimédia suivante ou précédente
media Accéder à l'application multimédia par défaut
navigation Accéder à l'application de navigation par défaut
tel Accéder à l'application Téléphone par défaut

Configurer la DHU

La DHU accepte un fichier de configuration .ini pour modifier les modes d'entrée entre l'écran tactile et le contrôleur rotatif, et pour définir la fréquence d'images, la résolution et la valeur PPP que l'unité principale demande au téléphone.

L'emplacement par défaut du fichier de configuration est ~/.android/headunit.ini. Pour modifier la configuration de l'unité principale de votre système, vous pouvez modifier ce fichier.

Vous pouvez également spécifier un fichier de configuration à charger à l'aide de l'indicateur -c :

./desktop-head-unit -c /path/to/config.ini

L'extrait de code suivant présente un exemple de configuration :

[general]
touch = true
touchpad = false
controller = false
instrumentcluster = false
resolution = 800x480
dpi = 160
framerate = 30
fueltypes = unleaded,electric,hydrogen
evconnectors = supercharger

Des exemples de fichiers de configuration présentant différents paramètres d'unité principale que vous pouvez tester se trouvent dans le dossier SDK_LOCATION/extras/google/auto/config/. Pour les cas d'utilisation plus avancés, reportez-vous aux paramètres pris en charge suivants.

Configuration de l'entrée

Le tableau suivant présente les options de configuration d'entrée :

Nom Valeur par défaut Type Description
inputmode default Chaîne Définissez le mode d'entrée. Les options touch, rotary et hybrid activent et désactivent l'écran tactile et le contrôleur rotatif, et définissent les codes de clavier par défaut, le cas échéant. default s'applique aux options touch et controller.
controller false Booléen Active l'entrée pour le contrôleur rotatif. Ignoré, sauf si inputmode est default.
touch true Booléen Activez l'écran tactile. Ignoré, sauf si inputmode est default.
touchpad false Booléen Activez le pavé tactile.
touchpadnavigation false Booléen Activez le pavé tactile pour la navigation dans l'interface utilisateur.
touchpadtapasselect false Booléen Lorsque cette option est définie sur "true", un geste sur le pavé tactile est considéré comme un événement de sélection.
touchpaduiabsolute false Booléen Lorsque touchpadnavigation est défini sur true, indiquez si les gestes doivent être traités comme des gestes absolus ou comme de simples gestes.
Configuration vidéo

Android Auto est compatible avec trois résolutions vidéo :

  • 480p (800 x 480 ; valeur par défaut)
  • 720p (1 280 x 720)
  • 1 080 px (1 920 x 1 080)

Pour prendre en charge d'autres formats, l'unité principale peut spécifier une marge réservée au format letterbox (pillarbox), si nécessaire. Par exemple, si vous souhaitez un écran de 1 000 x 600 pixels, définissez la résolution sur 720p (1 280 x 720), une marginwidth de 280 et une marginheight de 120. Cela a pour effet d'ajouter une marge de 140 pixels sur les bords gauche et droit, et une marge de 60 pixels en haut et en bas.

L'exemple de configuration suivant émule un écran classique de 6 pouces (750 x 450) :

[general]
...
resolution = 800x480
marginwidth = 50
marginheight = 30

L'exemple de configuration suivant émule un très grand écran :

[general]
...
resolution = 1280x720
marginwidth = 0
marginheight = 220

Le tableau suivant répertorie d'autres options de configuration vidéo :

Nom Valeur par défaut Type Description
resolution 800x480 Chaîne Choix possible : 800x480, 1280x720 ou 1920x1080.
dpi 160 Nombre entier
normalizedpi false Booléen Lorsque la valeur est true, la taille de fenêtre de la DHU est réduite pour prendre en compte les valeurs PPP élevées. Lorsqu'elle est définie sur false, des valeurs PPP élevées agrandissent les fenêtres, ce qui n'imite pas les vrais écrans, mais permet d'inspecter le contenu visuel.
realdpi 160 Nombre entier Utilisé dans la configuration vidéo.
framerate 30 Nombre entier Utilisé dans la configuration vidéo.
marginheight 0 Nombre entier Utilisé dans la configuration vidéo.
marginwidth 0 Nombre entier Utilisé dans la configuration vidéo.
margins 0,0,0,0 Chaîne Utilisé dans la configuration vidéo. Remplace marginwidth et marginheight, le cas échéant. Le format est : haut, bas, gauche, droite.
contentinsets 0,0,0,0 Chaîne Utilisé dans la configuration vidéo. Le format est : haut, bas, gauche, droite.
stablecontentinsets 0,0,0,0 Chaîne Utilisé dans la configuration vidéo. La valeur par défaut est contentinsets. Le format est : haut, bas, gauche, droite.
cropmargins false Booléen Si margins, marginheight ou marginwidth sont spécifiés, la valeur true de ce paramètre supprime ces marges de la vidéo affichée. Cette configuration reflète plus fidèlement ce que l'utilisateur final voit.
pixelaspectratio 1.0 Float Utilisé dans la configuration vidéo.
Configuration du capteur

Pour simuler des données de capteurs et les envoyer à Android Auto, les capteurs correspondants doivent être activés à l'aide des options suivantes. Si un capteur n'est pas activé, toutes les données envoyées à l'aide des commandes de la DHU sont ignorées.

Nom Valeur par défaut Type Description
accelerometer false Booléen Active les données de capteur de l'accéléromètre.
compass false Booléen Active les données de capteur de la boussole.
driving_status false Booléen Active les données de capteur permettant de déterminer si le véhicule est en mouvement.
fuel false Booléen Active les données de capteur du niveau de carburant.
gyroscope false Booléen Active les données de capteur du gyroscope.
location false Booléen Active les données de capteur de localisation du véhicule.
night_mode false Booléen Active les données de capteur du mode Nuit.
odometer false Booléen Activer les données de capteur de l'odomètre.
speed false Booléen Active les données du capteur de vitesse.
toll_card false Booléen Active les données de capteur de la carte à péage.
Diverses options de configuration

Le tableau suivant présente d'autres options de configuration :

Nom Valeur par défaut Type Description
instrumentcluster false Booléen Active le cluster d'instruments. Ajoute une fenêtre à l'interface utilisateur pour afficher la navigation et l'état du téléphone.
navcluster false Booléen Active le cluster d'instruments. Ajoute une fenêtre à l'interface utilisateur pour afficher l'état de la navigation.
phonecluster false Booléen Active le cluster d'instruments. Ajoute une fenêtre à l'interface utilisateur pour afficher l'état du téléphone.
playbackstatus false Booléen Active l'état de la lecture. Ajoute une fenêtre à l'interface utilisateur pour afficher les messages sur l'état de la lecture.
driverposition left Chaîne Choix possible : left, center ou right.
windowleft Nombre entier Définissez la position gauche de la fenêtre principale.
windowtop Nombre entier Définissez la position supérieure de la fenêtre principale.
fueltypes unleaded Chaînes Un ou plusieurs des éléments suivants, dans une liste d'éléments séparés par une virgule :
  • unleaded
  • leaded
  • diesel-1
  • diesel-2
  • biodiesel
  • e85
  • lpg
  • cng
  • lng
  • hydrogen
  • electric
  • other
  • unknown
evconnectors Chaînes Aucun, un ou plusieurs des éléments suivants dans une liste d'éléments séparés par une virgule :
  • j1772
  • mennekes
  • chademo
  • combo-1
  • combo-2
  • roadster
  • hpwc
  • gbt
  • supercharger
  • other
  • unknown
Défini uniquement si fueltypes contient electric.

Dépannage

Parfois, la DHU affiche un écran vide lorsqu'elle est connectée pour la première fois. Pour contourner ce problème, procédez comme suit :

  1. Fermez la DHU.
  2. Suivez l'étape 5 décrite dans la section Exécuter la DHU pour arrêter et redémarrer le serveur de l'unité principale.
  3. Redémarrez la DHU.
  4. Accordez toutes les autorisations supplémentaires requises sur l'écran du téléphone. La DHU risque de s'arrêter une nouvelle fois.
  5. Redémarrez-la si nécessaire.

Tester votre application pour Android Automotive OS

Vous pouvez utiliser Android Emulator pour tester le fonctionnement de votre application sur Android Automotive OS. Cette section explique comment configurer un appareil virtuel Android (AVD) pour tester votre application.

Modifier vos configurations d'exécution pour les applications multimédias

Les applications multimédias sur Automotive OS sont différentes des autres applications Android. Android Automotive OS interagit avec votre application multimédia à l'aide d'intents explicites et en envoyant des appels au service de votre navigateur multimédia.

Pour tester votre application, vérifiez qu'elle ne contient pas d'activité de lancement dans son fichier manifeste, puis empêchez le module automobile de se lancer avec une activité en procédant comme suit :

  1. Dans Android Studio, sélectionnez Run > Edit Configurations (Exécuter > Modifier les configurations).

    Boîte de dialogue "Configurations d'exécution/de débogage".

  2. Sélectionnez votre module automobile dans la liste des modules de votre application.

  3. Sous Options de lancement > Lancer, sélectionnez Rien.

  4. Cliquez sur Appliquer, puis sur OK.

Ajouter des images système

Avant de pouvoir créer des AVD correspondant au matériel d'un fabricant spécifique, vous devez ajouter des images système pour les appareils via le SDK Manager d'Android Studio. Ensuite, lorsque vous créerez un AVD, vous pourrez sélectionner les images système téléchargées à utiliser.

Ajouter les images système de constructeurs automobiles

Vous pouvez ajouter une image système spécifique à l'OEM pour les modèles GM, Honda, Polestar, Volvo, etc. Veuillez suivre la procédure indiquée sur les sites des développeurs OEM correspondants :

Par ordre alphabétique :

  1. GM
  2. Honda
  3. Polestar
  4. Volvo

Installer des images système génériques

Android Studio inclut également des images système génériques pour Android Automotive OS. Vous pouvez les utiliser pour tester votre application et il est conseillé de les utiliser lorsque vous effectuez des captures d'écran pour le Play Store.

Nom Niveau d'API Architecture Play Store Google Automotive App Host Bibliothèque android-automotive-video
Image système Automotive Intel x86 28 x86
Image système Automotive avec Play Store Intel x86 Atom 29 x86
Image système Automotive avec Play Store Intel x86 Atom_64 30 x86
Image système Automotive avec Play Store ARM 64 v8a 32 ARM
Image système Automotive avec Play Store Intel x86 Atom_64 32 x86

Pour installer des images système génériques, procédez comme suit :

  1. Dans Android Studio, sélectionnez Tools > SDK Manager (Outils > SDK Manager).
  2. Cliquez sur l'onglet Plates-formes SDK.
  3. Cliquez sur Show Package Details (Afficher les détails du package).
  4. Sélectionnez la ou les images à télécharger (pour en savoir plus, consultez le tableau précédent).
  5. Cliquez sur Apply (Appliquer), puis sur OK.

    Liste des composants de plate-forme SDK où une image système générique est sélectionnée.

Créer un AVD pour une voiture et exécuter l'émulateur

Suivez ces étapes pour créer un appareil virtuel Android (AVD) représentant un véhicule Android Automotive OS, puis utilisez-le pour exécuter l'émulateur :

  1. Dans Android Studio, sélectionnez Outils > AVD Manager.
  2. Cliquez sur Create Virtual Device (Créer un appareil virtuel).
  3. Dans la boîte de dialogue Select Hardware (Sélectionner le matériel), sélectionnez Automotive, puis choisissez un appareil et cliquez sur Next (Suivant).
  4. Sélectionnez une image système qui cible Automotive, comme Android 12L (Automotive avec Play Store), puis cliquez sur Next (Suivant).
  5. Donnez un nom à l'AVD et sélectionnez les autres options que vous souhaitez personnaliser, puis cliquez sur Finish (Terminer).
  6. Dans la barre de la fenêtre d'outils, sélectionnez votre AVD Android Automotive OS comme cible de déploiement.
  7. Cliquez sur Run (Exécuter) Icône Run (Exécuter).

Exigences supplémentaires spécifiques aux tests des applications multimédias

Si vous testez une application multimédia, testez les scénarios décrits dans cette section en plus de tester votre application sur Android Auto et/ou sur Android Automotive OS.

Tester les scénarios de démarrage de MediaBrowserService

Pour assurer la sécurité des conducteurs et des passagers, les utilisateurs doivent respecter certaines restrictions supplémentaires concernant les interactions avec les applications lorsque le véhicule est en mouvement. Pour cette raison, Android Auto et Android Automotive OS impliquent des scénarios de démarrage MediaBrowserService que votre application doit pouvoir gérer pour que les utilisateurs puissent continuer à profiter de votre continu lorsqu'ils sont en déplacement.

Testez votre application pour vous assurer qu'elle peut gérer chacun des scénarios suivants :

  • Le MediaBrowserService est exécuté avant l'ouverture d'un élément Activity.
  • Le MediaBrowserService est exécuté lorsqu'aucun élément Activity ne peut être affiché.
  • Le MediaBrowserService est exécuté lorsque l'utilisateur n'est pas connecté.

Lorsque vous testez ces scénarios, veillez à ne pas omettre les méthodes suivantes :

  • Forcez l'arrêt de l'application multimédia, puis lancez Android Auto ou Android Automotive OS.
  • Effacez les données de l'application multimédia, puis lancez Android Auto ou Android Automotive OS.

Assurez-vous également de définir un message d'erreur approprié si nécessaire.

Utiliser l'application Media Controller Test

L'application Media Controller Test vous permet de tester les subtilités de la lecture des contenus multimédias sur Android et vous aide à vérifier la mise en œuvre de votre session multimédia. Pour vous familiariser avec cet outil, consultez Utiliser l'application de test du contrôleur multimédia.