Referenz-TV-App

Eine TV-App, die Live-TV-Inhalte wiedergibt, ist für einige Klassen von Android-TV-Geräten erforderlich, z. B. Panel-TVs und Operator-STBs. 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 haben unterschiedliche Abhängigkeiten von Android-API-Ebenen:

Zweig Ziel-API-Ebene Mindest-API-Level
master 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 von 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 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 master
repo sync -j8 -c

Bauen

Führen Sie zum Erstellen des Live-TV-Codes Folgendes aus:

. 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, ob es ordnungsgemäß integriert ist, indem Sie die folgenden Tests zusätzlich zu den Kompatibilitätstest-Suite und den CTS Verifier-Tests für die TV-App verwenden. Sie müssen ein Gerät oder einen Emulator angeschlossen haben, 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'

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'