パネル TV やオペレーター STB など、一部のクラスの Android TV デバイスでは、ライブ TV コンテンツを再生する TV アプリが必要です。リファレンス アプリのソース コードは、Android オープン ソース プロジェクトで入手できます。
このページでは、Android テレビ デバイス用にライブ TV に基づいてシステム TV アプリを構築およびカスタマイズする方法をまとめます。
依存関係
ライブ TV アプリはTV 入力フレームワーク (TIF)のコンポーネントであり、他の TIF コンポーネントから独立して使用することはできません。アプリのブランチごとに、Android API レベルへの依存関係が異なります。
ブランチ | ターゲット API レベル | 最小 API レベル |
---|---|---|
master | 24 (アンドロイド 7.0) | 23 |
android-live-tv | 23 (アンドロイド 6.0) | 21 |
android-live-tv-l-mr1 | 22 (アンドロイド 5.1) | 21 |
ソースを入手する
開始するには、Git からライブ TV バージョンを選択します。次の手順は、ライブ TV の現在のバージョンを対象としています。以前のバージョンを使用するには、前の表にリストされている Git ブランチのいずれかに切り替えます。
mkdir live-tv && cd live-tv
repo init -u https://android.googlesource.com/platform/manifest -b master
repo sync -j8 -c
建てる
ライブ TV コードをビルドするには、次を実行します。
. build/envsetup.sh
tapas LiveTv x86
make LiveTv
押す
次のコードを使用して、ライブ TV をテスト デバイスにプッシュします。
adb install -r -d $OUT/system/priv-app/LiveTv/LiveTv.apk
ライブ TV アプリにシステム権限を持たせる場合は、最初のインストール時に次のコードを使用して/system/priv-app
にプッシュします。
adb push $OUT/system/priv-app/LiveTv/LiveTv.apk /system/priv-app/LiveTv/
テスト
ライブ TV がデバイスにインストールされたら、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'