リファレンス TV アプリ

ライブテレビ コンテンツを再生する TV アプリは、パネルテレビやオペレーター STB などの一部のクラスの Android TV デバイスで必要とされます。リファレンス アプリのソースコードは Android オープンソース プロジェクトで入手できます。

このページでは、Android テレビデバイスのライブテレビをベースにして、システム テレビアプリを作成およびカスタマイズする方法の概要について説明します。

依存関係

ライブテレビ アプリは、テレビ入力フレームワーク(TIF)のコンポーネントであり、他の TIF コンポーネントとは別に使用することはできません。アプリのブランチによって、Android API レベルへの依存関係は異なります。

ブランチ 対象 API レベル 最小 API レベル
master 24(Android 7.0) 23
android-live-tv 23(Android 6.0) 21
android-live-tv-l-mr1 22(Android 5.1) 21

情報源を入手

まず、Git からライブテレビ バージョンを選択します。以下の手順は、ライブテレビの現在のバージョンを対象としています。以前のバージョンを使用するには、以前の表にリストされている Git ブランチのいずれかに切り替えてください。

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

ビルド

ライブテレビのコードをビルドするには、次のコマンドを実行します。

. build/envsetup.sh
tapas LiveTv x86
make LiveTv

プッシュ

テストデバイスにライブテレビをプッシュするには、次のコードを使用します。

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

ライブテレビ アプリにシステム権限を付与する場合は、初めてインストールするときに次のコードを使用して /system/priv-app にプッシュします。

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

テスト

デバイスにライブテレビをインストールしたら、互換性テストスイートと、テレビアプリ用の 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'