某些類別的 Android TV 裝置(例如平板電視和電信商機上盒)需要播放直播電視內容的電視應用程式。 Android 開源專案中提供了參考應用程式的原始程式碼。
本頁總結如何為 Android 電視裝置建置和自訂基於 Live TV 的系統電視應用程式。
依賴關係
Live TV 應用程式是TV 輸入框架 (TIF)的一個元件,不能獨立於其他 TIF 元件使用。應用程式的不同分支對 Android API 層級有不同的依賴關係:
分支 | 目標 API 等級 | 最低 API 級別 |
---|---|---|
main | 24(安卓7.0) | 23 |
android-live-tv | 23(安卓6.0) | 21 |
android-live-tv-l-mr1 | 22(安卓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/
測試
在您的裝置上安裝 Live TV 後,除了相容性測試套件和電視應用程式的CTS 驗證程式測試之外,還可以使用以下測試來測試是否已正確整合。您必須連接裝置或模擬器才能執行所有測試類型。
單元測試
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'
卡頓測試
卡頓測試會尋找丟幀和渲染延遲。
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'