Für einige Android TV-Klassen ist eine TV-App erforderlich, über die Live-TV-Inhalte wiedergegeben werden z. B. Panel-TV-Geräte und STBs. Quellcode für eine Referenz-App ist im Android Open Source Project verfügbar.
Auf dieser Seite wird zusammengefasst, wie Sie eine System-TV-App erstellen und anpassen, die auf bei Live-TV für Ihr Android-TV-Gerät.
Abhängigkeiten
Die Live TV App ist eine Komponente des TV Input Framework (TIF). und können nicht unabhängig von den anderen TIF-Komponenten verwendet werden. Verschiedene Zweige der App haben unterschiedlichen Abhängigkeiten auf 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ähle zuerst eine Live TV-Version aus Git aus. Die folgenden Anweisungen gelten für die aktuelle Version von Live-TV. Wenn Sie eine frühere Version verwenden möchten, wechseln Sie zu einem der Git-Zweige die in der vorherigen Tabelle aufgeführt sind.
mkdir live-tv && cd live-tv
repo init -u https://android.googlesource.com/platform/manifest -b main
repo sync -j8 -c
Eine Community
Führen Sie folgenden Befehl aus, um den Live-TV-Code zu erstellen:
. build/envsetup.sh
tapas LiveTv x86
make LiveTv
Push
Verwende den folgenden Code, um Live-TV auf das Testgerät zu übertragen:
adb install -r -d $OUT/system/priv-app/LiveTv/LiveTv.apk
Wenn Sie möchten, dass die Live TV App Systemberechtigungen hat, verwenden Sie den folgenden Code, um sie auf
/system/priv-app
bei der ersten Installation:
adb push $OUT/system/priv-app/LiveTv/LiveTv.apk /system/priv-app/LiveTv/
Test
Nachdem Live TV auf deinem Gerät installiert ist, kannst du mit den folgenden Schritten testen, ob es richtig integriert ist: Tests zusätzlich zur Kompatibilitätstest-Suite und die CTS Verifier-Tests für die TV-App. Sie müssen ein Gerät oder einen Emulator angeschlossen haben, um alle Testtypen auszuführen.
Einheitentests
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'
Jank-Tests
Bei den Verzögerungstests wird nach abgebrochenen Frames und Verzögerungen beim Rendering 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'