Referenz-TV-App

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'