TV-Apps haben dieselbe Struktur wie Apps für Smartphones und Tablets. Diese Ähnlichkeit bedeutet, dass Sie Ihre vorhandenen Apps so anpassen können, dass sie auch auf TV-Geräten ausgeführt werden, oder neue Apps erstellen können, die auf Ihrem Wissen über die Entwicklung von Apps für Android basieren.
Wichtig:Ihre App muss bestimmte Anforderungen erfüllen, um bei Google Play als Android TV-App angeboten zu werden. Weitere Informationen findest du unter Qualität von TV-Apps.
In diesem Leitfaden wird beschrieben, wie Sie Ihre Entwicklungsumgebung für die Entwicklung von TV-Apps vorbereiten und welche 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 für Fernseher. Weitere Informationen finden Sie auch in den Beispiel-Apps im Android TV-GitHub-Repository.
Unterstützung von Medienformaten ermitteln
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 beschrieben, wie Sie ein TV-Projekt einrichten, unabhängig davon, ob Sie eine vorhandene Android-App für die Ausführung auf TV-Geräten ändern oder eine neue TV-App erstellen. Wenn Sie eine vorhandene Android-App haben, können Sie durch Hinzufügen von Android TV-Unterstützung eine Benutzeroberfläche für Fernseher entwerfen und gleichzeitig Ihre vorhandene App-Architektur wiederverwenden.
Beim Erstellen einer App, die auf TV-Geräten ausgeführt wird, verwenden Sie zwei Hauptkomponenten:
- Aktivität für Fernseher:Deklarieren Sie im Anwendungsmanifest eine Aktivität, die auf Fernsehern ausgeführt werden soll.
- TV-Bibliotheken:Optional können Sie eine oder mehrere der androidx-Bibliotheken für TV-Geräte einbinden, die in einem anderen Abschnitt dieses Leitfadens aufgeführt sind. Diese Bibliotheken enthalten Widgets zum Erstellen von Benutzeroberflächen.
Vorbereitung
Bevor Sie mit der Entwicklung einer App für Fernseher 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 entwickeln und testen. - Aktualisieren Sie Ihr SDK auf Android 5.0 (API 21) oder höher.
Die aktualisierte Plattformversion bietet neue APIs für TV-Apps. -
App-Projekt erstellen oder aktualisieren.
Wenn Sie auf neue APIs für TV-Geräte zugreifen möchten, erstellen Sie ein Projekt oder ändern Sie 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 Fernsehern ausgeführt werden soll, muss eine Launcher-Aktivität für Fernseher deklariert werden. Dazu wird ein CATEGORY_LEANBACK_LAUNCHER-Intent-Filter verwendet. Mit diesem Filter wird Ihre App als für Fernseher aktiviert gekennzeichnet und Google Play kann sie als TV-App identifizieren. Wenn ein Nutzer Ihre App auf dem Startbildschirm seines Fernsehers auswählt, wird mit diesem Intent festgelegt, welche Aktivität gestartet werden soll.
Das folgende Code-Snippet zeigt, wie Sie diesen Intent-Filter in Ihr Manifest einfügen:
<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 Aktivitätsmanifesteintrag in diesem Beispiel gibt an, dass es sich um die Aktivität handelt, die auf einem TV-Gerät gestartet werden soll.
Achtung:Wenn Sie den Intent-Filter CATEGORY_LEANBACK_LAUNCHER nicht in Ihre App einfügen, ist sie für Nutzer, die Google Play auf TV-Geräten verwenden, nicht sichtbar. Wenn Ihre App diesen Filter nicht enthält, wenn Sie sie mit Entwicklertools auf ein TV-Gerät laden, wird sie nicht auf der TV-Benutzeroberfläche angezeigt.
Die Benutzeroberfläche Ihrer TV-App oder der TV-Teil Ihrer bestehenden App muss eine intuitive Navigation mit einer Fernbedienung aus einer Entfernung von 3 Metern ermöglichen. Wenn Sie eine vorhandene App für die Verwendung auf einem Fernseher anpassen, verwenden Sie nicht dasselbe Aktivitätslayout für den Fernseher wie für Smartphones und Tablets. Richtlinien zum Designen einer App für Fernseher findest du unter Für Fernseher entwickeln.
Unterstützung von TV-Geräten deklarieren
Geben Sie an, dass Ihre App für Android TV entwickelt wurde, indem Sie das android.software.leanback-Feature deklarieren.
Wenn Ihre App sowohl auf Mobilgeräten als auch auf Fernsehern ausgeführt wird, legen Sie den Attributwert required auf false fest. Wenn Sie den Attributwert required auf true festlegen, ist Ihre App bei Google Play nur für 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, sind nicht auf Touchscreens als Eingabemethode angewiesen.
Damit dies deutlich wird, muss im Manifest deiner TV-App deklariert werden, dass die Funktion android.hardware.touchscreen nicht erforderlich ist. Mit dieser Einstellung wird Ihre App als für die Verwendung auf einem Fernseher geeignet gekennzeichnet. Sie ist erforderlich, damit Ihre App bei Google Play als TV-App eingestuft wird. Das folgende Codebeispiel zeigt, wie Sie diese Manifestdeklaration einfügen:
<manifest> <uses-feature android:name="android.hardware.touchscreen" android:required="false" /> ... </manifest>
Achtung:In Ihrem App-Manifest müssen Sie deklarieren, dass kein Touchscreen erforderlich ist, wie in diesem Beispielcode gezeigt. Andernfalls wird Ihre App nicht bei Google Play auf TV-Geräten 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-Startpunkt verwendet, der auf dem Startbildschirm in den App- und Spielreihen angezeigt wird.
So fügen Sie sie Ihrer App hinzu:
<application ... android:icon="@mipmap/ic_launcher" android:banner="@drawable/banner" > ... </application>
Symbol auf dem Startbildschirm
Android TV-Apps müssen wie alle Android-Apps ein Startbildschirmsymbol haben. Best Practices für die Gestaltung eines guten Startpunkts für deine App und detaillierte Anforderungen an Assets findest du in den Richtlinien für Android TV-App-Symbole und ‑Banner.
Banner auf dem 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 × 180 px. Das Bild muss Text enthalten. Wenn Ihre App in mehreren Sprachen verfügbar ist, müssen Sie für jede unterstützte Sprache separate Versionen des Banners mit Text bereitstellen.
Launcher-Farbe ä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 Sie die Farbe dieser Animation anpassen möchten, legen Sie das Attribut android:colorPrimary
Ihrer TV-App oder Aktivität auf eine bestimmte Farbe fest. Legen Sie außerdem zwei Attribute für die Übergangsoverlappung auf true fest, wie im folgenden Snippet aus einer XML-Datei für Themenressourcen zu sehen ist:
<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 Formatierungen finden Sie unter Formatierungen und Designs.
App für Android TV OS entwickeln
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:
Hier erfährst du, wie du mit Compose for TV eine TV-App entwickelst.
Leanback-UI-Toolkit
Das Leanback UI-Toolkit bietet APIs und Benutzeroberflächen-Widgets für TV-Geräte:
androidx.leanback.appandroidx.leanback.databaseandroidx.leanback.graphicsandroidx.leanback.mediaandroidx.leanback.preferenceandroidx.leanback.systemandroidx.leanback.widgetandroidx.leanback.widget.picker
Informationen zum Erstellen einer TV-App mit dem Leanback-UI-Toolkit finden Sie unter TV-Wiedergabe-Apps erstellen.
TV-Apps ausführen
Das Ausführen Ihrer App ist ein wichtiger Teil des Entwicklungsprozesses. Sie können Ihre App auf Fernsehern ausführen, die für das USB-Debugging konfiguriert sind, oder virtuelle Fernseher verwenden.
Auf einem physischen Gerät ausführen
So richtest du dein TV-Gerät ein:
- Verbinden Sie Ihr TV-Gerät über ein USB-Kabel mit Ihrem Entwicklercomputer. Sehen Sie bei Bedarf in der Dokumentation des Geräteherstellers nach.
- Rufe auf deinem Fernseher die Einstellungen auf.
- Wählen Sie in der Zeile Gerät die Option Info aus.
- Scrollen Sie zu Build und wählen Sie Build mehrmals aus, bis die Meldung „Du bist jetzt Entwickler!“ angezeigt wird.
- Kehren Sie zu den Einstellungen zurück. Wählen Sie in der Zeile Einstellungen die Option Entwickleroptionen aus.
- Wählen Sie Debugging > USB-Debugging und dann Ein aus.
- Kehre zum Startbildschirm des Fernsehers zurück.
So testen Sie Ihre Anwendung auf Ihrem Fernseher:
- Wählen Sie in Android Studio Ihr Projekt aus und klicken Sie in der Symbolleiste auf Run
. - Wähle im Fenster Select Deployment Target (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 bietet Gerätedefinitionen, mit denen Sie virtuelle TV-Geräte zum Ausführen und Testen Ihrer Anwendungen erstellen können.
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:Für eine optimale Leistung des TV-Emulatorgeräts sollten Sie den x86-Emulator verwenden und die Option Host-GPU verwenden aktivieren. Verwenden Sie auch die Beschleunigung virtueller Geräte, wenn sie verfügbar ist. Weitere Informationen zur Hardwarebeschleunigung des Emulators finden Sie unter Hardwarebeschleunigung für den Android-Emulator konfigurieren.
So testen Sie Ihre Anwendung auf dem virtuellen TV-Gerät:
- Wählen Sie in Android Studio Ihr Projekt aus und klicken Sie in der Symbolleiste auf Run
. - 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 von Android Studio auf virtuellen Geräten finden Sie unter App debuggen.
TV-App als Instant-Version ausführen
Mit Instant-Apps können Nutzer deine TV-App ausprobieren, ohne sie installieren zu müssen. Das kann die Akzeptanz steigern.
Wenn Sie Ihre TV-App so einrichten möchten, dass sie als Instant App auf einem Android TV-Gerät oder -Emulator ausgeführt wird, müssen Sie zuerst der Anleitung zum Erstellen eines App-Bundles für Instant Apps folgen.
Achten Sie als Nächstes darauf, dass im intent-filter für das MainActivity Ihrer TV-App 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>
Ihre 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 finden Sie die nächsten Schritte, um Ihre TV-App für die Veröffentlichung und Bereitstellung vorzubereiten.