Premiers pas avec les applications TV

Les applications TV utilisent la même structure que les applications pour téléphones et tablettes. Cette similarité signifie que vous pouvez modifier vos applications existantes pour qu'elles s'exécutent également sur des téléviseurs ou créer des applications basées sur ce que vous savez déjà sur la création d'applications pour Android.

Important:Votre application doit répondre à des exigences spécifiques pour être considérée comme une application Android TV sur Google Play. Pour en savoir plus, consultez les exigences listées sur la page Qualité des applications Android TV.

Ce guide explique comment préparer votre environnement de développement pour la création d'applications TV. Il décrit également les modifications minimales requises pour permettre à une application de s'exécuter sur des téléviseurs.

Pour en savoir plus sur la conception d'applications pour la télévision, consultez la section Concevoir pour la télévision. Consultez également les exemples d'applications dans le dépôt GitHub d'Android TV.

Déterminer la compatibilité des formats multimédias

Consultez la documentation suivante pour en savoir plus sur les codecs, protocoles et formats compatibles avec Android TV:

Configurer un projet TV

Cette section explique comment configurer un projet TV, que vous souhaitiez modifier une application Android existante pour qu'elle s'exécute sur des appareils TV ou créer une application Android TV. Si vous disposez déjà d'une application Android, la prise en charge d'Android TV vous permet de concevoir une interface utilisateur pour TV tout en réutilisant l'architecture existante de votre application.

Lorsque vous créez une application qui s'exécute sur des téléviseurs, vous devez utiliser deux composants principaux:

  • Activité pour la télévision:dans le fichier manifeste de votre application, déclarez une activité destinée à être exécutée sur les appareils TV.
  • Bibliothèques TV:vous pouvez éventuellement inclure une ou plusieurs des bibliothèques androidx disponibles pour les appareils TV, qui sont répertoriées dans une autre section de ce guide. Ces bibliothèques fournissent des widgets permettant de créer des interfaces utilisateur.

Conditions préalables

Avant de commencer à créer une application TV, vous devez suivre les étapes suivantes:

  • Mettez à jour SDK Tools vers la version 24.0.0 ou une version ultérieure.
    Les nouveaux SDK Tools vous permettent de créer et de tester des applications pour Android TV.
  • Mettez à jour votre SDK avec Android 5.0 (API 21) ou une version ultérieure.
    La version mise à jour de la plate-forme fournit de nouvelles API pour les applications TV.
  • Créez ou mettez à jour votre projet d'application.
    Pour accéder à de nouvelles API pour les téléviseurs, créez un projet ou modifiez un projet existant qui cible Android 5.0 (niveau d'API 21) ou version ultérieure.

Déclarer une activité TV

Une application destinée à être exécutée sur des téléviseurs doit déclarer une activité de lanceur d'applications pour téléviseur dans son fichier manifeste. Pour ce faire, il utilise un filtre d'intent CATEGORY_LEANBACK_LAUNCHER. Ce filtre identifie votre application comme étant activée pour la télévision et permet à Google Play de l'identifier en tant qu'application TV. Lorsqu'un utilisateur sélectionne votre application sur l'écran d'accueil de son téléviseur, cet intent identifie l'activité à lancer.

L'extrait de code suivant montre comment inclure ce filtre d'intent dans votre fichier manifeste:

<application
  android:banner="@drawable/banner" >
  ...
  <activity
    android:name="com.example.android.MainActivity"
    android:label="@string/app_name" >

    <intent-filter>
      <action android:name="android.intent.action.MAIN" />
      <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
  </activity>

  <activity
    android:name="com.example.android.TvActivity"
    android:label="@string/app_name"
    android:theme="@style/Theme.Leanback">

    <intent-filter>
      <action android:name="android.intent.action.MAIN" />
      <category android:name="android.intent.category.LEANBACK_LAUNCHER" />
    </intent-filter>

  </activity>
</application>

La deuxième entrée du fichier manifeste d'activité de cet exemple spécifie qu'il s'agit de l'activité à lancer sur un appareil TV.

Attention:Si vous n'incluez pas le filtre d'intent CATEGORY_LEANBACK_LAUNCHER dans votre application, il n'est pas visible par les utilisateurs qui exécutent Google Play sur des téléviseurs. De plus, si votre application ne présente pas ce filtre lorsque vous utilisez des outils pour les développeurs pour la charger sur un téléviseur, elle n'apparaît pas dans l'interface utilisateur du téléviseur.

L'interface utilisateur de votre appli TV, ou la partie TV de votre appli existante, doit fournir une interface simple pour faciliter la navigation à l'aide d'une télécommande à 3 m. Si vous modifiez une application existante pour l'utiliser sur un téléviseur, n'utilisez pas la même mise en page d'activité pour la télévision que pour les téléphones et les tablettes. Pour obtenir des consignes sur la conception d'une application pour la télévision, consultez la page Concevoir une application pour la télévision. Pour en savoir plus sur les exigences minimales d'implémentation pour les mises en page d'interface sur téléviseur, consultez Créer des mises en page TV.

Déclarer la compatibilité avec les téléviseurs

Déclarez que votre application est conçue pour Android TV en déclarant la fonctionnalité android.software.leanback.

Si votre application fonctionne à la fois sur mobile et sur téléviseur, définissez la valeur de l'attribut required sur false. Si vous définissez la valeur de l'attribut required sur true, Google Play ne rend votre application disponible que sur l'OS Android TV.

<manifest>
    <uses-feature android:name="android.software.leanback"
        android:required="false" />
    ...
</manifest>

Déclarer l'écran tactile non requis

Les applications destinées à être exécutées sur des téléviseurs n'utilisent pas d'écrans tactiles pour l'entrée. Pour rappel, le fichier manifeste de votre application TV doit déclarer que la fonctionnalité android.hardware.touchscreen n'est pas requise. Ce paramètre détermine que votre application peut fonctionner sur un téléviseur. Il est nécessaire pour qu'elle soit considérée comme une application TV dans Google Play. L'exemple de code suivant montre comment inclure cette déclaration de fichier manifeste:

<manifest>
    <uses-feature android:name="android.hardware.touchscreen"
              android:required="false" />
    ...
</manifest>

Attention:Dans le fichier manifeste de votre application, vous devez déclarer qu'aucun écran tactile n'est requis, comme illustré dans cet exemple de code. Sinon, votre application n'apparaîtra pas sur Google Play sur les téléviseurs.

Fournir une icône et une bannière sur l'écran d'accueil

Les applications Android TV doivent fournir à la fois une icône d'écran d'accueil et une image de bannière pour chaque localisation. Selon l'appareil Android TV, l'icône ou la bannière est utilisée comme point de lancement de l'application qui s'affiche sur l'écran d'accueil dans les lignes des applications et des jeux.

Pour les ajouter à votre application, décrivez l'icône et la bannière dans le fichier manifeste comme suit:

<application
    ...
    android:icon="@mipmap/ic_launcher"
    android:banner="@drawable/banner" >
    ...
</application>

Icône de l'écran d'accueil

Les applications Android TV, comme toutes les applications Android, doivent être associées à une icône sur l'écran d'accueil. Pour découvrir les bonnes pratiques à suivre afin de déterminer un bon point de lancement pour votre application et les exigences détaillées en matière d'éléments, consultez les consignes concernant les bannières et les icônes d'application Android TV.

Utilisez l'attribut android:banner avec la balise <application> afin de fournir une bannière par défaut pour toutes les activités de l'application, ou avec la balise <activity> afin de fournir une bannière pour une activité spécifique.

Pour la bannière, utilisez une ressource xhdpi d'une taille de 320 x 180 pixels. Le texte doit être inclus dans l'image. Si votre application est disponible dans plusieurs langues, vous devez fournir des versions distinctes de la bannière avec du texte pour chaque langue acceptée.

Modifier la couleur du lanceur d'applications

Attention:Sous Android 12 ou version ultérieure, les animations d'écran de démarrage personnalisées créées à l'aide de l'API de plate-forme SplashScreen ne sont pas compatibles avec les applications Android TV.

Lorsqu'une application TV est lancée, le système affiche une animation ressemblant à un cercle plein et extensible. Pour personnaliser la couleur de cette animation, définissez l'attribut android:colorPrimary de votre application TV ou de votre activité sur une couleur spécifique. Définissez également deux attributs de chevauchement de transition sur true, comme indiqué dans l'extrait suivant d'un fichier XML de ressources de thème:

<resources>
    <style ... >
      <item name="android:colorPrimary">@color/primary</item>
      <item name="android:windowAllowReturnTransitionOverlap">true</item>
      <item name="android:windowAllowEnterTransitionOverlap">true</item>
    </style>
</resources>

Pour en savoir plus sur l'utilisation des thèmes et des styles, consultez Styles et thèmes.

Créer une application pour l'OS Android TV

Jetpack inclut des bibliothèques de packages androidx à utiliser avec les applications pour téléviseur.

Compose pour la télévision

Nous vous recommandons d'utiliser Compose pour créer des applications pour l'OS Android TV. En plus des bibliothèques Compose principales, les bibliothèques Compose pour la télévision fournissent des composants dédiés conçus spécialement pour le grand écran:

Découvrez comment créer une application TV à l'aide de Compose pour la télévision dans Utiliser Jetpack Compose sur Android TV.

Kit d'interface utilisateur Leanback

Le kit d'interface utilisateur Leanback fournit des API et des widgets d'interface utilisateur pour les téléviseurs:

Découvrez comment créer une application TV à l'aide du kit d'interface utilisateur Leanback dans Créer des applications de lecture TV.

Exécuter des applications TV

L'exécution de votre application est une partie importante du processus de développement. Vous pouvez exécuter votre application sur des téléviseurs configurés pour accepter le débogage USB ou utiliser des téléviseurs virtuels.

Exécuter l'application sur un appareil physique

Pour configurer votre téléviseur, procédez comme suit:

  1. Utilisez un câble USB pour connecter votre appareil TV à votre ordinateur de développement. Si nécessaire, reportez-vous à la documentation fournie par le fabricant de votre appareil.
  2. Sur votre appareil TV, accédez à Paramètres.
  3. Sur la ligne Appareil, sélectionnez À propos.
  4. Faites défiler l'écran jusqu'à Compiler et sélectionnez Compiler plusieurs fois jusqu'à ce que le message "Vous êtes désormais un développeur !" s'affiche.
  5. Revenez aux Paramètres. Sur la ligne Preferences (Préférences), sélectionnez Developer options (Options pour les développeurs).
  6. Sélectionnez Débogage > Débogage USB, puis Activé.
  7. Revenez à l'écran d'accueil du téléviseur.

Pour tester votre application sur votre téléviseur:

  1. Dans Android Studio, sélectionnez votre projet, puis cliquez sur Run (Exécuter) dans la barre d'outils.
  2. Dans la fenêtre Select Deployment Target (Sélectionner une cible de déploiement), sélectionnez votre appareil TV, puis cliquez sur OK.

Exécuter l'application sur un appareil virtuel

AVD Manager du SDK Android fournit des définitions d'appareils qui vous permettent de créer des téléviseurs virtuels pour exécuter et tester vos applications.

Pour créer un téléviseur virtuel:

  1. Lancez AVD Manager. Pour en savoir plus, consultez la page Créer et gérer des appareils virtuels.
  2. Dans la boîte de dialogue AVD Manager, cliquez sur l'onglet Device Definitions (Définitions d'appareils).
  3. Sélectionnez l'une des définitions d'appareil Android TV, puis cliquez sur Create AVD (Créer un AVD).
  4. Sélectionnez les options de l'émulateur, puis cliquez sur OK pour créer l'AVD.

    Remarque:Pour des performances optimales de l'émulateur TV, utilisez l'émulateur x86 et activez l'option Use Host GPU (Utiliser le GPU hôte). Utilisez également l'accélération de l'appareil virtuel, si disponible. Pour en savoir plus sur l'accélération matérielle de l'émulateur, consultez Configurer l'accélération matérielle pour Android Emulator.

Pour tester votre application sur le téléviseur virtuel:

  1. Dans Android Studio, sélectionnez votre projet, puis cliquez sur Run (Exécuter) dans la barre d'outils.
  2. Dans la fenêtre Select Deployment Target (Sélectionner une cible de déploiement), sélectionnez votre appareil de télévision virtuelle, puis cliquez sur OK.

Pour en savoir plus sur l'utilisation des émulateurs, consultez Exécuter des applications sur Android Emulator. Pour en savoir plus sur le déploiement d'applications depuis Android Studio sur des appareils virtuels, consultez Déboguer votre application.

Permettre à votre appli TV de s'exécuter en tant qu'expérience instantanée

Les expériences instantanées permettent aux utilisateurs d'essayer facilement votre application TV et peuvent contribuer à l'adoption.

Pour configurer votre application TV afin qu'elle s'exécute en tant qu'application instantanée sur un appareil ou un émulateur Android TV, commencez par suivre les instructions pour créer un app bundle permettant une utilisation instantanée.

Ensuite, dans le fichier intent-filter du fichier MainActivity de votre application TV, assurez-vous que LAUNCHER et LEANBACK_LAUNCHER sont déclarés dans AndroidManifest.xml:

<activity
    android:name="com.example.android.MainActivity"
    android:label="@string/app_name" >

    <intent-filter>
      <action android:name="android.intent.action.MAIN" />
      <category android:name="android.intent.category.LAUNCHER" />
      <category android:name="android.intent.category.LEANBACK_LAUNCHER" />
    </intent-filter>
  </activity>

Votre appli TV est maintenant configurée pour s'exécuter en tant qu'expérience instantanée.

Préparer votre appli TV en vue de sa publication

Consultez la checklist des applications TV afin de connaître les étapes suivantes afin de préparer votre application TV en vue de sa publication et de sa distribution.