TV-App erstellen und ausführen

TV-Apps haben dieselbe Struktur wie Apps für Smartphones und Tablets. Das bedeutet, dass du deine vorhandenen Apps so ändern kannst, dass sie auch auf TV-Geräten ausgeführt werden können. Du hast aber auch die Möglichkeit, neue Apps zu erstellen, indem du auf dein Wissen über die Entwicklung von Apps für Android zurückgreifst.

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 Qualitätsrichtlinien für TV-Apps.

In diesem Leitfaden wird beschrieben, wie du deine Entwicklungsumgebung für die Erstellung von TV-Apps vorbereitest und die Mindeständerungen erforderlich sind, damit eine App auf TV-Geräten ausgeführt werden kann.

Informationen zum Design von Apps für Fernseher findest du unter Design for TV. Sieh dir auch die Beispiel-Apps im Android TV GitHub-Repository an.

Unterstützung für Medienformate bestimmen

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

TV-Projekt einrichten

In diesem Abschnitt wird beschrieben, wie du ein TV-Projekt einrichtest, unabhängig davon, ob du eine vorhandene Android-App so änderst, dass sie auf TV-Geräten ausgeführt werden kann, oder eine neue TV-App erstellst. Wenn du bereits eine Android-App hast, kannst du durch Hinzufügen von Android TV-Unterstützung eine Benutzeroberfläche für Fernseher entwerfen und gleichzeitig deine vorhandene App-Architektur wiederverwenden.

Beim Erstellen einer App, die auf TV-Geräten ausgeführt werden kann, verwendest du zwei Hauptkomponenten:

  • Aktivität für Fernseher: Deklariere im Anwendungsmanifest eine Aktivität, die auf TV-Geräten ausgeführt werden soll.
  • TV-Bibliotheken: Füge optional eine oder mehrere der androidx-Bibliotheken für TV-Geräte hinzu, die in einem anderen Abschnitt dieses Leitfadens aufgeführt sind. Diese Bibliotheken bieten Widgets zum Erstellen von Benutzeroberflächen.

Vorbereitung

Bevor du mit der Entwicklung einer App für Fernseher beginnst, musst du die folgenden Schritte ausführen:

  • Aktualisiere deine SDK-Tools auf Version 24.0.0 oder höher.
    Mit den aktualisierten SDK-Tools kannst du 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.
  • Erstelle oder aktualisiere dein App-Projekt.
    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

In der Manifestdatei einer Anwendung, die auf TV-Geräten ausgeführt werden soll, muss eine Launcher-Aktivität für Fernseher in der Manifestdatei deklariert sein. Dazu wird ein CATEGORY_LEANBACK_LAUNCHER Intent Filter verwendet. Dieser Filter kennzeichnet deine App als für Fernseher aktiviert und ermöglicht es Google Play, sie als TV-App zu identifizieren. Wenn ein Nutzer deine App auf dem Startbildschirm seines Fernsehers auswählt, gibt dieser Intent an, welche Aktivität gestartet werden soll.

Das folgende Code-Snippet zeigt, wie du diesen Intent-Filter in dein Manifest einfügst:

<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 im Aktivitätsmanifest in diesem Beispiel gibt an, dass es sich um die Aktivität handelt, die auf einem TV-Gerät gestartet werden soll.

Achtung:Wenn du den Intent-Filter CATEGORY_LEANBACK_LAUNCHER nicht in deine App einfügst, ist sie für Nutzer, die Google Play auf TV-Geräten verwenden, nicht sichtbar. Wenn deine App diesen Filter nicht enthält, wenn du sie mit Entwicklertools auf ein TV-Gerät lädst, wird die App außerdem nicht auf der Benutzeroberfläche des Fernsehers angezeigt.

Die Benutzeroberfläche deiner TV-App oder der TV-Teil deiner vorhandenen App muss eine einfache Benutzeroberfläche für die einfache Navigation mit einer Fernbedienung aus drei Metern Entfernung bieten. Wenn du eine vorhandene App für die Verwendung auf einem Fernseher änderst, verwende nicht dasselbe Aktivitätslayout für Fernseher wie für Smartphones und Tablets. Richtlinien zum Design einer App für Fernseher findest du unter Design für Fernseher.

Unterstützung für TV-Geräte deklarieren

Deklariere die Funktion android.software.leanback, um anzugeben, dass deine App für Android TV entwickelt wurde.

Wenn deine App sowohl auf Mobilgeräten als auch auf Fernsehern ausgeführt wird, setze den Attributwert required auf false. Wenn du den Wert des Attributs required auf true setzt, ist deine App bei Google Play nur unter Android TV OS verfügbar.

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

Touchscreen als nicht erforderlich deklarieren

Anwendungen, die auf TV-Geräten ausgeführt werden sollen, verwenden keine Touchscreens für die Eingabe. Um dies zu verdeutlichen, muss im Manifest deiner TV-App deklariert werden, dass die android.hardware.touchscreen Funktion nicht erforderlich ist. Diese Einstellung kennzeichnet deine App als auf einem TV-Gerät verwendbar . Sie ist erforderlich, damit deine App bei Google Play als TV-App gilt. Das folgende Codebeispiel zeigt, wie du diese Manifestdeklaration einfügst:

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

Achtung:In deinem App-Manifest musst du deklarieren, dass ein Touchscreen nicht erforderlich ist, wie in diesem Beispielcode gezeigt. Andernfalls wird deine App bei Google Play auf TV Geräten nicht angezeigt.

Startbildschirmsymbol und ‑banner bereitstellen

Android TV-Apps müssen für jede Lokalisierung sowohl ein Startbildschirmsymbol als auch ein Bannerbild enthalten. Je nach Android TV-Gerät wird entweder das Symbol oder das Banner als App-Start punkt verwendet, der auf dem Startbildschirm in den Zeilen „Apps“ und „Spiele“ angezeigt wird.

So fügst du diese Elemente deiner App hinzu: Beschreibe das Symbol und das Banner im Manifest so:

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

Startbildschirmsymbol

Android TV-Apps müssen wie alle Android-Apps ein Startbildschirmsymbol enthalten. Best Practices für das Design eines guten Startpunkts für deine App und detaillierte Anforderungen an Assets findest du unter Richtlinien für Android TV-App-Symbole und ‑Banner.

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

Verwende für das Banner eine xhdpi-Ressource mit einer Größe von 320 × 180 Pixel. Der Text muss im Bild enthalten sein. Wenn deine App in mehreren Sprachen verfügbar ist, musst du separate Versionen des Banners mit Text für jede unterstützte Sprache bereitstellen.

Farbe des Launchers ändern

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

Wenn eine TV-App gestartet wird, zeigt das System eine Animation an, die einem sich ausdehnenden, gefüllten Kreis ähnelt. Wenn du die Farbe dieser Animation anpassen möchtest, setze das android:colorPrimary Attribut deiner TV-App oder -Aktivität auf eine bestimmte Farbe. Setze außerdem zwei Attribute für die Überlappung von Übergängen auf true, wie im folgenden Snippet aus einer XML-Datei mit Designressourcen gezeigt:

<resources>
    <style name="MyTheme">
      <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 findest du unter Stile und Designs.

App für Android TV OS erstellen

Jetpack enthält androidx-Paketbibliotheken für die Verwendung mit TV-Apps.

Compose for TV

Compose ist die empfohlene Methode zum Erstellen von Apps für Android TV OS. Neben den Compose-Kernbibliotheken bieten die Compose for TV-Bibliotheken spezielle Komponenten, die speziell für den großen Bildschirm entwickelt wurden:

Unter Jetpack Compose unter Android TV verwenden erfährst du, wie du mit Compose for TV eine TV-App erstellst.

Leanback UI-Toolkit

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

Unter Apps für TV-Wiedergabe erstellen erfährst du, wie du mit dem Leanback UI-Toolkit eine TV-App erstellst.

TV-Apps ausführen

Das Ausführen deiner App ist ein wichtiger Teil des Entwicklungsprozesses. Du kannst deine App auf TV-Geräten ausführen, die USB-Debugging unterstützen, oder virtuelle TV-Geräte verwenden.

Auf einem physischen Gerät ausführen

So richtest du dein TV-Gerät ein:

  1. Verbinde dein TV-Gerät über ein USB-Kabel mit deiner Entwicklungsmaschine. Lies bei Bedarf die Dokumentation des Geräteherstellers.
  2. Rufe auf deinem TV-Gerät die Einstellungen auf.
  3. Wähle in der Zeile Gerät die Option Über aus.
  4. Scrolle zu Build und wähle Build mehrmals aus, bis die Meldung "Du bist jetzt Entwickler!" angezeigt wird.
  5. Kehre zu den Einstellungen zurück. Wähle in der Zeile Einstellungen die Option Entwickleroptionen aus.
  6. Wähle Debugging > USB-Debugging und dann Ein aus.
  7. Kehre zum Startbildschirm des Fernsehers zurück.

So testest du deine Anwendung auf deinem TV-Gerät:

  1. Wähle in Android Studio dein Projekt aus und klicke aufAusführen in der Symbolleiste.
  2. Wähle im Fenster Bereitstellungsziel auswählen dein TV-Gerät aus und klicke auf OK.

Auf einem virtuellen Gerät ausführen

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

So erstellst du ein virtuelles TV-Gerät:

  1. Starte den AVD Manager. Weitere Informationen findest du unter Virtuelle Geräte erstellen und verwalten.
  2. Klicke im Dialogfeld „AVD Manager“ auf den Tab Gerätedefinitionen.
  3. Wähle eine der Android TV-Gerätedefinitionen aus und klicke auf AVD erstellen.
  4. Wähle die Emulatoroptionen aus und klicke auf OK, um den AVD zu erstellen.

    Hinweis: Verwende für die beste Leistung des TV-Emulatorgeräts den x86-Emulator und aktiviere die Option Host-GPU verwenden. Verwende außerdem die Beschleunigung für virtuelle Geräte, wenn sie verfügbar ist. Weitere Informationen zur Hardwarebeschleunigung des Emulators findest du unter Hardwarebeschleunigung für den Android Emulator konfigurieren.

So testest du deine Anwendung auf dem virtuellen TV-Gerät:

  1. Wähle in Android Studio dein Projekt aus und klicke aufAusführen in der Symbolleiste.
  2. Wähle im Fenster Bereitstellungsziel auswählen dein virtuelles TV-Gerät aus und klicke auf OK.

Weitere Informationen zur Verwendung von Emulatoren findest du unter Apps im Android Emulator ausführen. Weitere Informationen zum Bereitstellen von Apps aus Android Studio auf virtuellen Geräten findest du unter App debuggen.

TV-App als Instant-Funktion ausführen

Instant-Funktionen ermöglichen es Nutzern , deine TV-App ganz einfach auszuprobieren, und können so die Akzeptanz erhöhen.

Wenn du deine TV-App als Instant-App auf einem Android TV-Gerät oder ‑Emulator ausführen möchtest, folge zuerst der Anleitung zum Erstellen eines App-Bundles mit Instant-Funktionen.

Achte dann darauf, dass sowohl LAUNCHER als auch LEANBACK_LAUNCHER im intent-filter für die MainActivity deiner TV-App 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 so konfiguriert, dass sie als Instant-Funktion ausgeführt wird.

TV-App für die Veröffentlichung vorbereiten

In der Checkliste für TV-Apps findest du die nächsten Schritte , um deine TV-App für die Veröffentlichung und Bereitstellung vorzubereiten.