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'