リファレンス TV アプリ

コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

パネル 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'