Google は、黒人コミュニティに対する人種平等の促進に取り組んでいます。取り組みを見る
このページは Cloud Translation API によって翻訳されました。
Switch to English

リファレンスTVアプリ

パネルTVやオペレーターSTBなどの一部のクラスのAndroid TVデバイスには、ライブTVコンテンツを再生するTVアプリケーションが必要です。参照TVアプリケーション( ライブTV )は、カスタマイズ、拡張、または置換できるAndroidプラットフォームと一緒に提供されます。 ソースコードは、Androidオープンソースプロジェクトで入手できます。

この記事では、Android TVデバイス用のライブTVに基づいてシステムTVアプリを構築およびカスタマイズする方法をまとめています。 (TVアプリケーションを拡張して、デバイスの製造元または国固有の機能を実装することもできますが、これは参照TVアプリの範囲外です。)

依存関係

TVアプリケーションはTV入力フレームワーク (TIF)のコンポーネントであり、他のコンポーネントから独立して使用することはできません。これは、TIFを備えたデバイスのみがライブTVアプリケーションを実行できることを意味します。

ライブTVアプリケーションはAndroid APIに依存しています。ブランチが異なれば、APIレベルへの依存性も異なります。

表1.ライブTVブランチ。

ブランチターゲットAPIレベル最小APIレベル
主人 24(Android 7.0) 23
android-live-tv 23(Android 6.0) 21
android-live-tv-l-mr1 22(Android 5.1) 21

ソースを入手する

開始するには、Gitから使用するライブTVのバージョンを選択します。以下の手順は現在のバージョンのLive TVを対象としていますが、ブランチをマスターから上の表にリストされている別のバージョンに変更することで、以前のバージョンを簡単に選択できます。

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

開発者がLIVE TVアプリにシステム権限を付与したい場合は、初めてインストールするときに、次のコマンドで/ system / priv-appにプッシュする必要があります。

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

テスト

デバイスにライブTVが表示されたら、適切に統合されていることをテストする必要があります。 TVアプリに対して互換性テストスイートCTS Verifierテストを実行することに加えて、以下のテストを使用できます。

単体テスト

ライブTVアプリには単体テストと機能テストがあります。テストを実行するには、デバイス(またはエミュレーター)が接続されている必要があります。

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.google.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.google.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.google.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'