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

リファレンスTVアプリ

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

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

依存関係

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

LiveTVアプリケーションはAndroidAPIに依存しています。ブランチが異なれば、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のバージョンを選択します。以下の手順はLiveTVの現在のバージョンを対象としていますが、ブランチをマスターから上記の表にリストされている別のバージョンに変更することで、以前のバージョンを簡単に選択できます。

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

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

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

テスト

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

ユニットテスト

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

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'

ジャンクテスト

Jankテストは、ドロップされたフレームとレンダリングの遅延を探します。

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'