page.title=TV アプリのビルドを開始する page.tags=tv, leanback, recyclerview trainingnavtop=true startpage=true @jd:body

学習の目的

  1. TV プロジェクトをセットアップする
  2. TV サポート ライブラリを追加する
  3. TV アプリをビルドする
  4. TV アプリを実行する

関連コンテンツ

  1. TV 向けデザイン
  2. TV 用のレイアウトをビルドする

TV アプリでは、携帯電話やタブレット向けのものと同じ構造を使用します。つまり、Android アプリのビルドに関する既知の技術を使用して新たな TV アプリを作成したり、既存のアプリを TV 端末でも使用できるように編集したりできます。

重要:Google Play で Android TV アプリを提供するには、特定の要件を満たす必要があります。詳細については、TV アプリの品質に記載されている要件を参照してください。

このレッスンでは、TV アプリのビルドの際の開発環境の準備方法と、TV 端末上でアプリを使用できるようにするために最低限必要な変更について説明します。

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

このセクションでは、TV 端末向けに既存のアプリを変更したり、新しく作成する方法について説明します。TV 端末向けアプリを作成する際に使用する必要がある主なコンポーネントは次のとおりです。

前提条件

TV 向けアプリのビルドを開始するには:

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

TV 端末向けアプリでは、{@link android.content.Intent#CATEGORY_LEANBACK_LAUNCHER} のインテント フィルタを使用して、アプリのマニフェストで TV 用ランチャーのアクティビティを宣言する必要があります。このフィルタは、アプリが TV 向けになっていることを判別しますので、Google Play 内で TV アプリと認識される上で必要です。この宣言は、ユーザーが 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 番目のアクティビティのマニフェスト エントリが、TV 端末で起動するアクティビティを指定しています。

警告:アプリに {@link android.content.Intent#CATEGORY_LEANBACK_LAUNCHER} インテント フィルタを含めない場合、TV 端末で Google Play ストアを開いているユーザーにアプリが表示されません。開発者ツールを使用して TV 端末にロードする際にこのフィルタがない場合も、TV のユーザー にはアプリインターフェースが表示されません。

TV 向け用途で既存のアプリを変更する場合は、携帯電話やタブレットと同じアクティビティのレイアウトを使用しないでください。TV アプリや既存のアプリの TV 向け部分については、ソファでくつろぎながら TV リモコンを使用して、簡単にナビゲートできるシンプルなユーザー インターフェースを提供する必要があります。TV 向けアプリをデザインする際のガイドラインについては、TV 向けデザインガイドを参照してください。TV のインターフェースのレイアウトに関する最低限の実装要件についてはTV 用のレイアウトをビルドするを参照してください。

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

TV 端末向けアプリでは、入力はタッチスクリーンに依存しません 。これを明確にするために、TV アプリのマニフェストで {@code android.hardware.touchscreen} 機能が不要であることを宣言する必要があります。この設定により、アプリが TV 端末向けであると判別しますので、Google Play 内で TV アプリと認識される上で必要です。次のコード例では、マニフェストに宣言を含める方法を示します。

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

警告:このコード例のようにアプリのマニフェストでタッチスクリーンが不要であると宣言しないと、アプリが TV 端末の Google Play ストアに表示されません。

アプリに Leanback ランチャーのインテント フィルタが含まれている場合は、ホーム スクリーンにバナーを配置する必要があります。バナーは、アプリやゲームの行のホーム スクリーン上に表示されるアプリの起動ポイントです。次のようにマニフェストにバナーを記述します。

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

    ...
</application>

{@code android:banner} 属性を使用して、<application> タグとともにアプリのすべてのアクティビティにデフォルトのバナーを配置するか、<activity> タグとともに特定のアクティビティにバナーを配置します。

TV 向けデザインの UI パターンガイドのバナーを参照してください。

TV サポート ライブラリを追加する

Android SDK には、TV アプリ向けのサポート ライブラリが用意されています。これらのライブラリでは、TV 端末向けに使用できる API とユーザー インターフェース ウィジェットを提供しています。同ライブラリは {@code <sdk>/extras/android/support/} ディレクトリにあります。ライブラリとその全般的な用途の一覧を次に示します。

注意:これらのサポート ライブラリは TV アプリに必須ではありませんが、特にメディア カタログのブラウジング インターフェースを提供するアプリについては使用することを強くお勧めします。

v17 leanback ライブラリを使用する場合、v4 サポート ライブラリ に依存していることに注意してください。つまり、leanback ライブラリを使用するアプリには、次のサポート ライブラリをすべて含める必要があります。

v17 leanback ライブラリには、アプリのプロジェクトに含める際に、特定の手順を踏む必要があるリソースが含まれています。リソースを使用してサポート ライブラリをインポートする手順については、サポート ライブラリのセットアップを参照してください。

TV アプリをビルドする

上記の手順を完了したら、TV 向けアプリのビルドに取りかかりましょう。TV アプリのビルドに役立つ次の補足的なトピックに目を通してください。

TV アプリを実行する

アプリの実行は、開発プロセスの重要な一部です。Android SDK の AVD Manager では端末定義を提供しており、アプリの実行やテスト用の仮想 TV 端末を作成することができます。

仮想 TV 端末を作成するには:

  1. AVD Manager を起動します。詳細については、AVD Manager のヘルプを参照してください。
  2. [AVD Manager] ダイアログで [端末定義] タブをクリックします。
  3. Android の TV 端末定義を選択し、[AVD の作成] をクリックします。
  4. エミュレータのオプションを選択して、[OK] をクリックして AVD を作成します。

    注意:TV 用のエミュレータ端末で最高のパフォーマンスを得るには、[ホスト GPU を使用] オプションを有効にし、サポートされている場合には、仮想端末のアクセラレーションを使用します。エミュレータのハードウェア アクセラレーションについては、エミュレータを使用するを参照してください。

仮想 TV 端末上でアプリをテストするには:

  1. 自分の開発環境に TV アプリをコンパイルします。
  2. 自分の開発環境からアプリを実行し、ターゲットの TV 仮想端末を選択します。

エミュレータの使用方法については、エミュレータを使用するを参照してください。Android Studio から仮想端末へのアプリのデプロイについては、Android Studio を使用してデバッグするを参照してください。ADT を使用した Eclipse からエミュレータへのアプリのデプロイについては、Eclipse から ADT を使用してビルド、実行するを参照してください。