Für einige Android TV-Geräte wie Panel-Fernseher und Set-Top-Boxen von Dienstanbietern ist eine TV-App erforderlich, mit der Live-TV-Inhalte wiedergegeben werden können. Der Quellcode für eine Referenz-App ist im Android Open Source Project verfügbar.
Auf dieser Seite wird beschrieben, wie Sie eine systemeigene TV-App auf der Grundlage von Live-TV für Ihr Android-Fernsehergerät erstellen und anpassen.
Abhängigkeiten
Die Live-TV-App ist eine Komponente des TV Input Framework (TIF) und kann nicht unabhängig von den anderen TIF-Komponenten verwendet werden. Die verschiedenen Versionen der App haben unterschiedliche Abhängigkeiten von Android-API-Ebenen:
Branch | Ziel-API-Level | Mindest-API-Level |
---|---|---|
main |
24 (Android 7.0) | 23 |
android-live-tv |
23 (Android 6.0) | 21 |
android-live-tv-l-mr1 |
22 (Android 5.1) | 21 |
Quelle abrufen
Wählen Sie zuerst eine Live-TV-Version aus Git aus. Die folgende Anleitung gilt für die aktuelle Version von Live TV. Wenn Sie eine ältere Version verwenden möchten, wechseln Sie zu einem der in der vorherigen Tabelle aufgeführten Git-Branches.
mkdir live-tv && cd live-tv
repo init -u https://android.googlesource.com/platform/manifest -b main
repo sync -j8 -c
Entwickeln
Führe zum Erstellen des Live-TV-Codes Folgendes aus:
. build/envsetup.sh
tapas LiveTv x86
make LiveTv
Push
Verwende den folgenden Code, um Live-TV auf dein Testgerät zu streamen:
adb install -r -d $OUT/system/priv-app/LiveTv/LiveTv.apk
Wenn die Live-TV-App Systemberechtigungen haben soll, verwende den folgenden Code, um sie bei der Erstinstallation auf /system/priv-app
zu pushen:
adb push $OUT/system/priv-app/LiveTv/LiveTv.apk /system/priv-app/LiveTv/
Test
Nachdem Live-TV auf Ihrem Gerät installiert ist, testen Sie zusätzlich zur Kompatibilitätstestsuite und den CTS-Verifier-Tests für die TV-App mit den folgenden Tests, ob die Funktion richtig eingebunden ist. Sie benötigen ein verbundenes Gerät oder einen Emulator, um alle Testtypen ausführen zu können.
Unit tests
adb shell logcat -c m LiveTv TVTestInput TVUnitTests -j20 &&\ adb install -r -d $OUT/system/priv-app/LiveTv/LiveTv.apk &&\ adb install -r -d $OUT/system/app/TVTestInput/TVTestInput.apk && \ adb install -r -d $OUT/data/app/TVUnitTests/TVUnitTests.apk && \ adb shell pm clear com.android.providers.tv && \ adb shell pm clear com.android.tv && \ adb shell am instrument \ -e testSetupMode unit \ -w com.android.tv.testinput/.instrument.TestSetupInstrumentation &&\ adb shell input keyevent KEYCODE_HOME &&\ adb shell am instrument \ -w 'com.android.tv.tests/android.support.test.runner.AndroidJUnitRunner'
Funktionstests
adb shell logcat -c m LiveTv TVTestInput TVFuncTests -j20 &&\ adb install -r -d $OUT/system/priv-app/LiveTv/LiveTv.apk &&\ adb install -r -d $OUT/system/app/TVTestInput/TVTestInput.apk && \ adb install -r -d $OUT/data/app/TVFuncTests/TVFuncTests.apk && \ adb shell pm clear com.android.providers.tv && \ adb shell pm clear com.android.tv && \ adb shell am instrument \ -e testSetupMode func \ -w com.android.tv.testinput/.instrument.TestSetupInstrumentation &&\ adb shell input keyevent KEYCODE_HOME &&\ adb shell am instrument \ -w 'com.android.tv.tests.ui/android.support.test.runner.AndroidJUnitRunner'
Rucktests
Bei den Ruckeltests wird nach fehlenden Frames und Verzögerungen beim Rendern gesucht.
adb shell logcat -c m LiveTv TVTestInput TVJankTests -j20 &&\ adb install -r -d $OUT/system/priv-app/LiveTv/LiveTv.apk &&\ adb install -r -d $OUT/system/app/TVTestInput/TVTestInput.apk &&\ adb install -r -d $OUT/data/app/TVJankTests/TVJankTests.apk &&\ adb shell pm clear com.android.providers.tv &&\ adb shell pm clear com.android.tv &&\ echo "Creating a lot of channels and EPG data, this may take a while" &&\ adb shell am instrument \ -e testSetupMode jank \ -w com.android.tv.testinput/.instrument.TestSetupInstrumentation &&\ adb shell input keyevent KEYCODE_HOME &&\ adb shell am instrument \ -w 'com.android.tv.tests.jank/android.support.test.runner.AndroidJUnitRunner'