Referenz-TV-App

Für einige Klassen von Android-TV-Geräten, z. B. Panel-TVs und Betreiber-STBs, ist eine TV-App erforderlich, die Live-TV-Inhalte wiedergibt. Der 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 basierend auf Live TV für Ihr Android-Fernsehgerä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. Verschiedene Zweige der App weisen unterschiedliche Abhängigkeiten von den Android-API-Ebenen auf:

Zweig Ziel-API-Ebene 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

Holen Sie sich die Quelle

Wählen Sie zunächst eine Live-TV-Version aus Git aus. Die folgenden Anweisungen gelten für die aktuelle Version von Live TV. Um eine frühere Version zu verwenden, wechseln Sie zu einem der in der vorherigen Tabelle aufgeführten Git-Zweige.

mkdir live-tv && cd live-tv
repo init -u https://android.googlesource.com/platform/manifest -b main
repo sync -j8 -c

Bauen

Führen Sie Folgendes aus, um den Live-TV-Code zu erstellen:

. build/envsetup.sh
tapas LiveTv x86
make LiveTv

Drücken

Verwenden Sie den folgenden Code, um Live-TV auf Ihr Testgerät zu übertragen:

adb install -r -d $OUT/system/priv-app/LiveTv/LiveTv.apk

Wenn Sie beabsichtigen, dass die Live-TV-App über Systemberechtigungen verfügt, verwenden Sie den folgenden Code, um sie bei der ersten Installation nach /system/priv-app zu verschieben:

adb push $OUT/system/priv-app/LiveTv/LiveTv.apk  /system/priv-app/LiveTv/

Prüfen

Nachdem Live TV auf Ihrem Gerät installiert wurde, testen Sie die ordnungsgemäße Integration mithilfe der folgenden Tests zusätzlich zur Kompatibilitätstestsuite und den CTS Verifier-Tests für die TV-App. Um alle Testtypen ausführen zu können, muss ein Gerät oder ein Emulator angeschlossen sein.

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'

Jank-Tests

Die Jank-Tests suchen nach ausgelassenen Frames und Verzögerungen beim Rendern.

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'