參考 TV 應用程式

某些類別的 Android TV 使用者必須取得可以播放電視直播內容的電視應用程式 例如面板電視和電信業者 STB 等 原始碼 Android 開放原始碼計畫提供了參考應用程式的 章節。

本頁面會概述建構及自訂系統 TV 應用程式的方式 在您的 Android TV 裝置上觀看直播節目。

依附元件

Live TV 應用程式是電視輸入架構 (TIF) 的元件之一 且無法獨立於其他 TIF 元件使用。應用程式的不同分支版本 不同的 Android API 級別:

Branch 目標 API 級別 最低 API 級別
main 24 (Android 7.0) 23
android-live-tv 23 (Android 6.0) 21
android-live-tv-l-mr1 22 (Android 5.1) 21

取得來源

如要開始使用,請從 Git 中選取 Live TV 版本。下列操作說明適用於目前的 的直播電視版本。如要使用較舊版本,請切換至其中一個 Git 分支版本 列在上表中

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

建構

如要建構直播電視程式碼,請執行:

. build/envsetup.sh
tapas LiveTv x86
make LiveTv

推送

請使用以下程式碼將直播電視推送至測試裝置:

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

如果你希望 Live TV 應用程式具備系統權限,請使用以下程式碼將該應用程式推送至 首次安裝這個程式時,/system/priv-app

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

測試

在裝置安裝電視直播後,請使用下列方法測試裝置已正確整合 除了 相容性測試套件外 和 TV 應用程式的 CTS Verifier 測試。 您必須連上裝置或模擬器才能執行所有測試類型。

單元測試

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'

功能測試

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 測試

卡頓測試會尋找影格遺失和轉譯延遲情形。

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'