TV アプリを作成して実行する

TV アプリは、スマートフォンやタブレット向けのアプリと同じ構造を使用します。この類似性により、 TV デバイスでも実行できるように既存のアプリを変更したり、既存のアプリに基づいて新しいアプリを作成したりする 詳しく学びます。

重要: Google Play で Android TV アプリとして認められる。詳細については、次をご覧ください。 テレビアプリの品質

このガイドでは、TV アプリを構築するための開発環境の準備方法と、 TV デバイスでアプリを実行するために最低限必要な変更

TV 向けアプリの設計について詳しくは、Android TV 向けにデザインする テレビ。また、 Android TV の GitHub リポジトリ

メディア形式のサポートについて判断する

コーデック、プロトコル、形式については、次のドキュメントをご覧ください。 次のとおりです。

TV プロジェクトをセットアップする

このセクションでは、テレビ プロジェクトの設定方法について説明します。 既存の Android アプリを TV デバイス向けに変更したり、アプリを作成したりする 新しいテレビアプリ既存の Android アプリがある場合は、Android TV のサポートを追加することで 既存のアプリ アーキテクチャを再利用しながら、TV 向けのユーザー インターフェースを構築できます。

TV デバイス向けのアプリを作成する際は、次の 2 つの主要コンポーネントを使用します。

  • TV のアクティビティ: アプリ マニフェストで、以下のように設定します。 TV デバイスで実行することを目的としたアクティビティを宣言する。
  • TV ライブラリ: 必要に応じて、1 つ以上の androidx ライブラリ テレビデバイスで利用可能なモデルについては、このガイドの別のセクションに記載しています。 これらのライブラリでは、ユーザー インターフェースを作成するためのウィジェットが提供されます。

前提条件

TV 向けアプリの作成を開始する前に、以下のことを行う必要があります。

  • SDK Tools をバージョン 24.0.0 以降に更新します。
    更新された SDK Tools を使用して、TV 向けアプリを構築、テストできます。
  • SDK を Android 5.0(API 21)以降で更新します。
    更新されたプラットフォーム バージョンでは、TV アプリ用の新しい API が提供されます。
  • アプリ プロジェクトを作成または更新します。
    TV デバイス用の新しい API にアクセスするには、プロジェクトを作成するか、既存の Android 5.0(API レベル 21)以降をターゲットとするプロジェクト。

TV のアクティビティを宣言する

TV デバイス向けのアプリでは、TV 用のランチャー アクティビティを宣言する必要がある あります。CATEGORY_LEANBACK_LAUNCHER インテントを使用する フィルタします。このフィルタは、アプリがテレビに対応していることを識別して、 Google Play で TV アプリとして識別されます。ユーザーがテレビのホーム画面で アプリを選択すると このインテントは起動するアクティビティを識別します。

次のコード スニペットに、マニフェストにインテント フィルタを含める方法を示します。

<application
  android:banner="@drawable/banner" >
  ...
  <activity
    android:name="com.example.android.MainActivity"
    android:label="@string/app_name" >

    <intent-filter>
      <action android:name="android.intent.action.MAIN" />
      <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
  </activity>

  <activity
    android:name="com.example.android.TvActivity"
    android:label="@string/app_name"
    android:theme="@style/Theme.Leanback">

    <intent-filter>
      <action android:name="android.intent.action.MAIN" />
      <category android:name="android.intent.category.LEANBACK_LAUNCHER" />
    </intent-filter>

  </activity>
</application>

この例の 2 番目のアクティビティのマニフェスト エントリは、それがアクティビティを実行することを指定しています。 テレビデバイスで起動します

注意: URL に インテント フィルタ CATEGORY_LEANBACK_LAUNCHER 個 TV デバイスで Google Play を実行しているユーザーには表示されません。また、 デベロッパー ツールを使用してテレビデバイスに読み込む場合、アプリにはこのフィルタが表示されません。 テレビのユーザー インターフェースに表示されません。

TV アプリのユーザー インターフェース、または既存のアプリの TV 部分では、簡単に操作できるシンプルなインターフェースを提供する必要があります 3 メートル離れた場所からでも操作できます。テレビ用に既存のアプリを変更する場合は、同じアプリを使用しないでください。 アクティビティ レイアウトを作成します。TV 向けアプリを設計する際のガイドラインについては、TV 向けデザインをご覧ください。

TV デバイスのサポートを宣言する

次のように宣言して、アプリが Android TV 向けであることを宣言します。 android.software.leanback 機能。

アプリがモバイルとテレビの両方で動作する場合は、required 属性値を falserequired 属性値を true に設定すると、次のようになります。 Google Play により、アプリは Android TV OS でのみ利用可能になります。

<manifest>
    <uses-feature android:name="android.software.leanback"
        android:required="false" />
    ...
</manifest>

タッチスクリーンの不要を宣言する

TV デバイス向けに開発されたアプリは、入力にタッチスクリーンに依存しません。 これを明確にするために、TV アプリのマニフェストで android.hardware.touchscreen 機能は必要ありません。この設定により、アプリが お客様のアプリがテレビデバイスで動作するため、Google プレイする。次のコード例は、このマニフェスト宣言を含める方法を示しています。

<manifest>
    <uses-feature android:name="android.hardware.touchscreen"
              android:required="false" />
    ...
</manifest>

注意: アプリのマニフェストで、タッチスクリーンが必須ではないことを宣言する必要があります。 必要があります。それ以外の場合、アプリはテレビの Google Play に表示されません できます。

ホーム画面にアイコンとバナーを提供する

Android TV アプリでは、ローカライズごとにホーム画面のアイコンとバナー画像の両方を提供する必要があります。 Android TV デバイスに応じて、アイコンまたはバナーのいずれかがアプリの起動として使用されます。 ホーム画面のアプリとゲームの行に表示されるポイントです。

これらをアプリに追加するには、マニフェストにアイコンとバナーを次のように記述します。

<application
    ...
    android:icon="@mipmap/ic_launcher"
    android:banner="@drawable/banner" >
    ...
</application>

ホーム画面アイコン

すべての Android アプリと同様に、Android TV アプリにはホーム画面アイコンが必要です。ベストプラクティスとして アプリの最適なリリース ポイントと詳細なアセット要件を判断するには、 Android TV アプリのアイコンとバナー ガイドラインをご覧ください。

android:banner を使用する <application> を持つ属性 すべてのアクティビティにデフォルトのバナーを指定するか、 <activity> 特定のアクティビティにバナーを提供します。

バナーには、320 × 180 ピクセルの xhdpi リソースを使用してください。テキストは 説明します。アプリが複数の言語に対応している場合は、そのアプリの個別のバージョンを用意する必要があります。 サポートされている言語ごとにテキストが入ったバナー

ランチャーの色を変更する

注意: Android 12 以降では、 SplashScreen プラットフォーム API は、Android TV アプリではサポートされていません。

TV アプリが起動すると、塗りつぶしを拡大したようなアニメーションが表示されます。 クリックします。このアニメーションの色をカスタマイズするには、android:colorPrimary を設定します。 属性を特定の色にマッピングできます。また、2 つ目の 次のスニペットに示すように、重複属性を true に移行する テーマリソース XML ファイル:

<resources>
    <style ... >
      <item name="android:colorPrimary">@color/primary</item>
      <item name="android:windowAllowReturnTransitionOverlap">true</item>
      <item name="android:windowAllowEnterTransitionOverlap">true</item>
    </style>
</resources>

テーマとスタイルの使用について詳しくは、 スタイルとテーマ

Android TV OS 用のアプリを作成する

Jetpack には、TV アプリで使用する androidx パッケージ ライブラリが含まれています。

テレビ向け Compose

Compose は、Android TV OS 向けのアプリを作成するためのおすすめの方法です。Compose の中核機能 Compose for TV ライブラリには、アプリ用に特別に設計された専用コンポーネントが 大画面:

Compose for TV を使用して TV アプリを作成する方法については、Android TV で Jetpack Compose を使用するをご覧ください。

Leanback UI ツールキット

Leanback UI ツールキットには、TV デバイス向けの API とユーザー インターフェース ウィジェットが用意されています。

Leanback UI ツールキットを使用して TV アプリを作成する方法については、 TV 再生アプリを作成する

TV アプリを実行する

アプリの実行は開発プロセスの重要部分です。アプリは USB デバッグをサポートするか、仮想 TV デバイスを使用するように設定されたテレビデバイス。

実機で実行する

次のように TV デバイスを設定します。

  1. USB ケーブルを使って TV デバイスを開発用 PC に接続します。必要に応じて お使いのデバイス メーカーが提供するマニュアルをご覧ください。
  2. TV デバイスで、[Settings] に移動します。
  3. [デバイス] 行で [デバイス情報] を選択します。
  4. [Build] までスクロールし、メッセージが表示されるまで [Build] を数回選択します。 「開発者向けオプションが有効になりました。」
  5. [設定] に戻ります。[設定] 行で [開発者向けオプション] を選択します。
  6. [Debugging > USB debugging] を選択し、[On] を選択します。
  7. TV のホーム画面に戻ります。

TV デバイスでアプリケーションをテストするには:

  1. Android Studio でプロジェクトを選択し、 実行 クリックします。
  2. [Select Deployment Target] ウィンドウで、次の操作を行います。 テレビデバイスを選択して [OK] をクリックします。

仮想デバイス上で実行する

Android の AVD Manager SDK が提供するデバイス定義を使用して、実行中および 説明します。

仮想 TV デバイスを作成するには:

  1. AVD Manager を起動します。詳細については、次をご覧ください: 仮想デバイスを作成して管理する
  2. [AVD Manager] ダイアログで [Device Definitions] タブをクリックします。
  3. Android TV のいずれかのデバイス定義を選択し、[Create AVD] をクリックします。
  4. エミュレータのオプションを選択し、[OK] をクリックして AVD を作成します。

    注: TV エミュレータ デバイスのパフォーマンスを最大限に高めるには、x86 エミュレータを使用してください [Use Host GPU] オプションを有効にします。次の場合は仮想デバイス アクセラレーションも使用します できます。エミュレータのハードウェア アクセラレーションについて詳しくは、以下をご覧ください。 アプリのハードウェア アクセラレーションを Android Emulator:

仮想 TV デバイス上でアプリをテストするには:

  1. Android Studio でプロジェクトを選択し、 実行 クリックします。
  2. [Select Deployment Target] ウィンドウで、次の操作を行います。 仮想 TV デバイスを選択して [OK] をクリックします。

エミュレータの使用方法の詳細については、 Android Emulator でアプリを実行する。Android Studio から仮想環境へのアプリのデプロイについて詳しくは、 アプリをデバッグするをご覧ください。

TV アプリを Instant エクスペリエンスとして実行できるようにする

Instant エクスペリエンス: ユーザーが簡単に操作できます を導入することで、導入を促進することができます。

Android TV デバイスまたはエミュレータで Instant App として実行するように TV アプリを設定するには: まず画面の指示に従って Instant 対応 App Bundle を作成してください。

次に、TV アプリの intent-filter MainActivity の場合は、LAUNCHERLEANBACK_LAUNCHERAndroidManifest.xml で宣言します。

<activity
    android:name="com.example.android.MainActivity"
    android:label="@string/app_name" >

    <intent-filter>
      <action android:name="android.intent.action.MAIN" />
      <category android:name="android.intent.category.LAUNCHER" />
      <category android:name="android.intent.category.LEANBACK_LAUNCHER" />
    </intent-filter>
  </activity>

これで、TV アプリが Instant 版として動作するように設定されました。

公開する TV アプリを準備する

TV アプリのチェックリストで次のステップを確認します。 を使用して、公開と配信用の TV アプリを準備します。