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:
- Unterstützte Medienformate
- Digitale Rechteverwaltung
android.drm
- ExoPlayer
android.media.MediaPlayer
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.
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 das Fernsehen finden Sie unter Entwicklung für TV. Weitere Informationen zu den Mindestimplementierungsanforderungen für Schnittstellenlayouts auf Fernsehern findest du unter TV-Layouts erstellen.
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 musst du, wie in diesem Beispielcode gezeigt, erklären, dass kein Touchscreen erforderlich ist. 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.
Banner für den Startbildschirm
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
Die meisten AndroidX-Bibliotheken können mit Android TV verwendet werden. Verwenden Sie Architekturkomponenten wie ViewModel
zum Verwalten lebenszyklusbezogener UI-Daten und Room
zur Integration in lokale SQLite-Datenbanken wie bei Mobilgeräten.
Android TV wird von den meisten AndroidX-Bibliotheken unterstützt. TV-Apps können dieselben Architekturkomponenten wie mobile Apps verwenden. Du kannst sogar Komponenten zwischen Formfaktoren teilen, sodass du dich nur auf die Präsentationslogik deiner TV-App spezialisieren musst.
Für TV erstellen
Mit Jetpack Compose kannst du die Benutzeroberfläche deines TV-Betriebssystems erstellen. Compose ist das moderne Android-Tokit für die UI-Entwicklung. Neben den zentralen Compose-Bibliotheken bieten die Compose-Bibliotheken für TV-Inhalte 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 (nicht empfohlen)
Das Leanback-UI-Toolkit stellt seit jeher APIs und UI-Widgets ausschließlich für Fernsehgeräte mit Android-Ansichten und -Fragmenten bereit:
androidx.leanback.app
androidx.leanback.database
androidx.leanback.graphics
androidx.leanback.media
androidx.leanback.preference
androidx.leanback.system
androidx.leanback.widget
androidx.leanback.widget.picker
Unter Leanback-UI-Toolkit verwenden erfährst du, wie du eine TV-App mit dem Leanback-UI-Toolkit erstellen kannst.
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:
- Verbinden Sie den Fernseher über ein USB-Kabel mit dem Entwicklungscomputer. Weitere Informationen findest du in der Dokumentation des Geräteherstellers.
- Rufen Sie auf Ihrem Fernseher die Einstellungen auf.
- Wählen Sie in der Zeile Gerät die Option Info aus.
- Scrollen Sie zu Build und wählen Sie mehrmals Build aus, bis Sie die Meldung „You are now a developer!“ erhalten,
- Kehren Sie zu den Einstellungen zurück. Wählen Sie in der Zeile Preferences (Einstellungen) die Option Developer options (Entwickleroptionen) aus.
- Wählen Sie Debugging > USB-Debugging aus und klicken Sie auf Ein.
- Kehren Sie zum Startbildschirm des Fernsehers zurück.
So testen Sie Ihre App auf Ihrem Fernseher:
- Wählen Sie in Android Studio Ihr Projekt aus und klicken Sie in der Symbolleiste auf Ausführen .
- 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:
- Starten Sie den AVD Manager. Weitere Informationen finden Sie unter Virtuelle Geräte erstellen und verwalten.
- Klicken Sie im Dialogfeld „AVD-Manager“ auf den Tab Gerätedefinitionen.
- Wählen Sie eine der Android TV-Gerätedefinitionen aus und klicken Sie auf AVD erstellen.
- 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:
- Wählen Sie in Android Studio Ihr Projekt aus und klicken Sie in der Symbolleiste auf Ausführen .
- 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.