Referenz-TV-App

Für einige Klassen von Android-TV-Geräten, wie z. B. Panel-TVs und Operator-STBs, ist eine TV-Anwendung erforderlich, die Live-TV-Inhalte wiedergibt. Neben der Android-Plattform wird eine Referenz-TV-Anwendung ( Live TV ) bereitgestellt, die angepasst, erweitert oder ersetzt werden kann. Der Quellcode ist im Android Open Source Project verfügbar.

Dieser Artikel fasst zusammen, wie Sie eine auf Live TV basierende System-TV-App für Ihr Android-Fernsehgerät erstellen und anpassen. (Sie können Ihre TV-Anwendung erweitern, um Gerätehersteller oder länderspezifische Funktionen zu implementieren. Dies fällt jedoch nicht in den Geltungsbereich der Referenz-TV-App.)

Abhängigkeiten

Die TV-Anwendung ist eine Komponente des TV Input Framework (TIF) und kann nicht unabhängig von den anderen Komponenten verwendet werden. Dies bedeutet, dass nur Geräte mit TIF die Live-TV- Anwendung ausführen können.

Die Live-TV-Anwendung hängt von Android-APIs ab. Unterschiedliche Zweige haben unterschiedliche Abhängigkeiten von API-Ebenen:

Tabelle 1. Live-TV-Zweige.

Ast Ziel-API-Ebene Minimale API-Ebene
Meister 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 die gewünschte Version von Live TV von Git aus. Die folgenden Anweisungen gelten für die aktuelle Version von Live TV. Sie können jedoch problemlos eine frühere Version auswählen, indem Sie den Zweig vom Master in einen anderen Zweig ändern, der in der obigen Tabelle aufgeführt ist.

mkdir live-tv && cd live-tv
repo init -u https://android.googlesource.com/platform/manifest -b master
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

So übertragen Sie Live TV auf Ihr Testgerät:

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

Wenn der Entwickler möchte, dass die LIVE TV-App über Systemberechtigungen verfügt, muss sie bei der ersten Installation an / system / priv-app gesendet werden mit:

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

Prüfung

Sobald Live TV auf Ihrem Gerät installiert ist, sollten Sie testen, ob es ordnungsgemäß integriert ist. Zusätzlich zum Ausführen der Kompatibilitätstestsuite und der CTS-Verifizierertests für die TV-App können Sie die folgenden Tests verwenden:

Unit-Tests

Es gibt Unit- und Funktionstests für die Live-TV-App. Sie müssen ein Gerät (oder einen Emulator) angeschlossen haben, um die Tests ausführen zu können.

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.google.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.google.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 verworfenen 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.google.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'