TV-App erstellen und ausführen

TV-Apps haben dieselbe Struktur wie Apps für Smartphones und Tablets. Diese Ähnlichkeit bedeutet, dass du deine vorhandenen Apps so anpassen kannst, dass sie auch auf Fernsehern ausgeführt werden, oder neue Apps erstellen, die auf dem basieren, was du bereits über die Entwicklung von Apps für Android weißt.

Wichtig:Deine App muss bestimmte Anforderungen erfüllen, um bei Google Play als Android TV-App zu gelten. Weitere Informationen findest du unter Qualitätsrichtlinien für TV-Apps.

In diesem Leitfaden wird beschrieben, wie du deine Entwicklungsumgebung für die Erstellung von TV-Apps vorbereiten kannst. Außerdem werden die erforderlichen Änderungen beschrieben, damit eine App auf Fernsehern ausgeführt werden kann.

Informationen zum Entwerfen von Apps für den Fernseher findest du unter Design für das Fernsehen. Die Beispiel-Apps findest du auch im GitHub-Repository für Android TV.

Unterstützte Medienformate bestimmen

Informationen zu den von Android TV unterstützten Codecs, Protokollen und Formaten finden Sie in der folgenden Dokumentation:

TV-Projekt einrichten

In diesem Abschnitt wird erläutert, wie du ein TV-Projekt einrichtest. Dabei spielt es keine Rolle, ob du eine vorhandene Android-App für die Ausführung auf Fernsehern modifizieren oder eine neue TV-App erstellen möchtest. Wenn du bereits eine Android-App hast, kannst du durch Hinzufügen der Android TV-Unterstützung eine Benutzeroberfläche für den Fernseher entwerfen und dabei deine vorhandene App-Architektur wiederverwenden.

Beim Erstellen einer App, die auf Fernsehern ausgeführt werden kann, gibt es zwei Hauptkomponenten:

  • Aktivität für TV:Deklariere in deinem App-Manifest eine Aktivität, die auf Fernsehern ausgeführt werden soll.
  • TV-Bibliotheken:Du kannst optional eine oder mehrere der für Fernseher verfügbaren Androidx-Bibliotheken hinzufügen, die in einem anderen Abschnitt dieser Anleitung aufgeführt sind. Diese Bibliotheken bieten Widgets zum Erstellen von Benutzeroberflächen.

Voraussetzungen

Bevor Sie mit der Entwicklung einer App für TV-Geräte beginnen, müssen Sie die folgenden Schritte ausführen:

  • Aktualisieren Sie Ihre SDK-Tools auf Version 24.0.0 oder höher.
    Mit den aktualisierten SDK-Tools können Sie Apps für Fernseher erstellen und testen.
  • Aktualisiere dein SDK auf Android 5.0 (API 21) oder höher.
    Die aktualisierte Plattformversion bietet neue APIs für TV-Apps.
  • Erstellen Sie ein App-Projekt oder aktualisieren Sie es.
    Wenn du auf neue APIs für TV-Geräte zugreifen möchtest, erstelle ein Projekt oder ändere ein vorhandenes Projekt, das auf Android 5.0 (API-Level 21) oder höher ausgerichtet ist.

TV-Aktivität deklarieren

Für eine App, die auf Fernsehern ausgeführt werden soll, muss in ihrem Manifest eine Launcher-Aktivität für das Fernsehen deklariert sein. Dazu wird ein CATEGORY_LEANBACK_LAUNCHER-Intent-Filter verwendet. Durch diesen Filter wird deine App als TV-App erkannt und Google Play kann sie als TV-App identifizieren. Wenn ein Nutzer deine App auf dem Startbildschirm des Fernsehers auswählt, ermittelt dieser Intent, welche Aktivität gestartet werden soll.

Das folgende Code-Snippet zeigt, wie Sie diesen Intent-Filter in Ihr Manifest aufnehmen:

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

Der zweite Eintrag des Aktivitätsmanifests in diesem Beispiel gibt an, dass es sich um die Aktivität handelt, die auf einem Fernseher gestartet werden soll.

Achtung:Wenn du den Intent-Filter CATEGORY_LEANBACK_LAUNCHER nicht in deine App einbindest, ist er für Nutzer, die Google Play auf Fernsehern ausführen, nicht sichtbar. Falls deine App diesen Filter nicht hat, wenn du sie mithilfe der Entwicklertools auf einem Fernseher lädst, wird sie auch nicht in der Benutzeroberfläche des Fernsehers angezeigt.

Die Benutzeroberfläche deiner TV-App oder der TV-Teil deiner vorhandenen App muss eine einfache Oberfläche für eine einfache Navigation mit einer Fernbedienung in einer Entfernung von 3 Metern bieten. Wenn du eine vorhandene App für die Verwendung auf Fernsehern änderst, verwende für Smartphones und Tablets nicht dasselbe Aktivitätslayout wie für Smartphones und Tablets. Richtlinien zur Entwicklung einer App für den Fernseher finden Sie unter Design für das Fernsehen.

Support für TV-Geräte deklarieren

Deklariere die Funktion android.software.leanback, um zu erklären, dass deine App für Android TV entwickelt wurde.

Wenn deine App sowohl auf Mobilgeräten als auch auf Fernsehern läuft, setze den Attributwert required auf false. Wenn du den Attributwert required auf true setzt, macht Google Play deine App nur unter Android TV verfügbar.

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

Deklarieren, dass der Touchscreen nicht erforderlich ist

Bei Apps, die für die Ausführung auf Fernsehern vorgesehen sind, werden für die Eingabe keine Touchscreens benötigt. Dazu muss im Manifest deiner TV-App deutlich gemacht werden, dass die Funktion android.hardware.touchscreen nicht erforderlich ist. Durch diese Einstellung wird festgelegt, dass deine App auf einem Fernseher funktioniert. Sie ist erforderlich, damit deine App bei Google Play als TV-App eingestuft wird. Das folgende Codebeispiel zeigt, wie diese Manifest-Deklaration einbezogen wird:

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

Achtung:In deinem App-Manifest muss angegeben werden, dass kein Touchscreen erforderlich ist, wie in diesem Beispielcode gezeigt. Andernfalls erscheint deine App nicht bei Google Play auf Fernsehern.

Stellen Sie ein Symbol und Banner für den Startbildschirm bereit.

Android TV-Apps müssen für jede Lokalisierung ein Symbol für den Startbildschirm und ein Bannerbild haben. Je nach Android TV-Gerät wird entweder das Symbol oder das Banner als App-Startpunkt verwendet, der auf dem Startbildschirm in den Zeilen für Apps und Spiele angezeigt wird.

Um sie zu Ihrer App hinzuzufügen, beschreiben Sie das Symbol und das Banner im Manifest wie folgt:

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

Startbildschirmsymbol

Bei Android TV-Apps muss wie bei allen Android-Apps ein Symbol für den Startbildschirm vorhanden sein. Best Practices für die Entwicklung einer idealen Einführungsmöglichkeit für deine App und detaillierte Asset-Anforderungen findest du in den Richtlinien für Android TV-App-Symbole und -Banner.

Verwenden Sie das Attribut android:banner mit dem Tag <application>, um ein Standardbanner für alle Anwendungsaktivitäten bereitzustellen, oder mit dem Tag <activity>, um ein Banner für eine bestimmte Aktivität bereitzustellen.

Verwenden Sie für das Banner eine xhdpi-Ressource mit einer Größe von 320 x 180 Pixeln. Das Bild muss Text enthalten. Wenn deine App in mehr als einer Sprache verfügbar ist, musst du für jede unterstützte Sprache eine separate Version des Banners mit Text bereitstellen.

Launcher-Farbe ändern

Achtung:Unter Android 12 und höher werden benutzerdefinierte Ladebildschirmanimationen, die mit der API der SplashScreen-Plattform erstellt wurden, für Android TV-Apps nicht unterstützt.

Beim Starten einer TV-App zeigt das System eine Animation an, die einem expandierenden, ausgefüllten Kreis ähnelt. Wenn du die Farbe dieser Animation anpassen möchtest, lege für das Attribut android:colorPrimary deiner TV-App oder -Aktivität eine bestimmte Farbe fest. Legen Sie außerdem zwei Attribute für Übergangsüberschneidungen auf true fest, wie im folgenden Snippet einer XML-Datei für Themenressourcen gezeigt:

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

Weitere Informationen zum Arbeiten mit Designs und Stilen finden Sie unter Stile und Designs.

App für Android TV OS entwickeln

Jetpack enthält androidx-Paketbibliotheken zur Verwendung mit TV-Apps.

Für TV erstellen

Die empfohlene Methode zum Erstellen von Apps für Android TV ist die Option „Schreiben“. Neben den zentralen Compose-Bibliotheken bieten diese Bibliotheken spezielle Komponenten, die speziell für große Bildschirme entwickelt wurden:

Unter Jetpack Compose auf Android TV verwenden erfährst du, wie du mit Compose für TV eine TV-App erstellst.

Leanback-UI-Toolkit

Das Leanback-UI-Toolkit bietet APIs und Benutzeroberflächen-Widgets für TV-Geräte:

Unter Apps zur TV-Wiedergabe entwickeln erfährst du, wie du mit dem Leanback-UI-Toolkit eine TV-App erstellst.

TV-Apps ausführen

Die Ausführung Ihrer Anwendung ist ein wichtiger Teil des Entwicklungsprozesses. Du kannst deine App auf Fernsehern ausführen, die für USB-Debugging konfiguriert sind, oder virtuelle TV-Geräte verwenden.

Auf einem physischen Gerät ausführen

So richtest du deinen Fernseher ein:

  1. Verbinden Sie den Fernseher über ein USB-Kabel mit dem Entwicklungscomputer. Weitere Informationen findest du in der Dokumentation des Geräteherstellers.
  2. Rufen Sie auf Ihrem Fernseher die Einstellungen auf.
  3. Wählen Sie in der Zeile Gerät die Option Info aus.
  4. Scrollen Sie zu Build und wählen Sie mehrmals Build aus, bis Sie die Meldung „You are now a developer!“ erhalten,
  5. Kehren Sie zu den Einstellungen zurück. Wählen Sie in der Zeile Preferences (Einstellungen) die Option Developer options (Entwickleroptionen) aus.
  6. Wählen Sie Debugging > USB-Debugging aus und klicken Sie auf Ein.
  7. Kehren Sie zum Startbildschirm des Fernsehers zurück.

So testen Sie Ihre App auf Ihrem Fernseher:

  1. Wählen Sie in Android Studio Ihr Projekt aus und klicken Sie in der Symbolleiste auf Ausführen .
  2. Wählen Sie im Fenster Select Deployment Target Ihr TV-Gerät aus und klicken Sie auf OK.

Auf einem virtuellen Gerät ausführen

Der AVD Manager im Android SDK bietet Gerätedefinitionen, mit denen du virtuelle TV-Geräte erstellen kannst, um deine Apps auszuführen und zu testen.

So erstellst du ein virtuelles TV-Gerät:

  1. Starten Sie den AVD Manager. Weitere Informationen finden Sie unter Virtuelle Geräte erstellen und verwalten.
  2. Klicken Sie im Dialogfeld „AVD-Manager“ auf den Tab Gerätedefinitionen.
  3. Wählen Sie eine der Android TV-Gerätedefinitionen aus und klicken Sie auf AVD erstellen.
  4. Wählen Sie die Emulatoroptionen aus und klicken Sie auf OK, um das AVD zu erstellen.

    Hinweis:Die beste Leistung des TV-Emulators erzielen Sie, wenn Sie den x86-Emulator verwenden und die Option Use Host GPU (Host-GPU verwenden) aktivieren. Verwenden Sie auch die virtuelle Gerätebeschleunigung, falls verfügbar. Weitere Informationen zur Hardwarebeschleunigung des Emulators finden Sie unter Hardwarebeschleunigung für den Android-Emulator konfigurieren.

So testen Sie Ihre App auf dem virtuellen Fernseher:

  1. Wählen Sie in Android Studio Ihr Projekt aus und klicken Sie in der Symbolleiste auf Ausführen .
  2. Wählen Sie im Fenster Select Deployment Target (Bereitstellungsziel auswählen) Ihr virtuelles TV-Gerät aus und klicken Sie auf OK.

Weitere Informationen zur Verwendung von Emulatoren finden Sie unter Apps im Android-Emulator ausführen. Weitere Informationen zum Bereitstellen von Apps aus Android Studio auf virtuellen Geräten findest du unter Fehler in Apps beheben.

Instant-Version der TV-App aktivieren

Instant-Funktionen erleichtern Nutzern das Ausprobieren deiner TV-App und erhöhen die Akzeptanz.

Wenn du deine TV-App so einrichten möchtest, dass sie als Instant-App auf einem Android TV-Gerät oder Emulator ausgeführt wird, folge zuerst der Anleitung zum Erstellen eines Instant-fähigen App-Bundles.

Als Nächstes musst du im intent-filter für die MainActivity deiner TV-App dafür sorgen, dass sowohl LAUNCHER als auch LEANBACK_LAUNCHER in AndroidManifest.xml deklariert sind:

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

Deine TV-App ist jetzt für die Ausführung als Instant-Version konfiguriert.

TV-App für die Veröffentlichung vorbereiten

In der Checkliste für TV-Apps findest du die nächsten Schritte zur Vorbereitung deiner TV-App für die Veröffentlichung und den Vertrieb.