開発者コンソール

Fire TVとAndroid TVにおける開発の違い

Fire TVとAndroid TVにおける開発の違い

HAQM Fire TVとAndroid TVはどちらもAndroidベースのため、同じAndroidアプリをHAQMアプリストアとGoogle Playストアの両方で配信可能で、アプリの知名度やダウンロード件数の大幅な上昇も見込めます。

ただし、Fire TVにはコードで考慮すべき違いがいくつかあります。これらの違いは、たとえばハードウェアやサービスを構成する独自の要素に起因しています。一方のサービスには存在する機能がもう一方のサービスにはない場合もあります。異なるサービスではあるものの、同等の働きをするものもあります。

コードの中でこうした違いに対応するには、HAQM Fire TVデバイスを識別し、それに応じて異なるデバイスおよび動作に合わせてコーディングする必要があります。

HAQM Fire TVとAndroid TVの違い

まず、Android TVとHAQM Fire TVの特徴をそれぞれ明確にしておきましょう。

  • Android TVとは、TV用に最適化されたAndroidオペレーティングシステムのことです(Lollipop以降のバージョン)。Android LollipopとLeanback Support Libraryには、TVのプラットフォームに合わせてAndroidを最適化する機能が備わっています。Android TVは、TVデバイス単体でネイティブOSとして実行できるほか、TVからセットトップボックスを介してAndroidを実行することができます。Android TVの詳細については、Wikipediaを参照してください。
  • HAQM Fire TVとは、TVでFireオペレーティングシステム(OS)を実行するFire TVセットトップボックスまたはFire TV Stickを指します。Fire OSには、 Fire OS 5、Fire OS 6、Fire OS 7という3つのバージョンがあります。Fire OS 5はAndroid 5.1(APIレベル22)を、Fire OS 6はAndroid 7.1(APIレベル25)を、Fire OS 7はAndroid 9(APIレベル28)をそれぞれベースにしています。Fire OSもAndroidオペレーティングシステムをベースにしていますが、HAQMのハードウェアやサービスにも対応できるという違いがあります。FireタブレットでもFire OS 5が使用されています。ただし、TVプラットフォームでの「10フィートエクスペリエンス」に主眼を置いた機能は採用されていません(詳細については、Fire OSの概要またはFire TVのデバイス仕様を参照してください)。

重要な点は、Android TVとHAQM Fire TVはどちらもAndroidをベースにしており、アプリ開発において開発者が実装する技術は、相違点よりも共通点の方がはるかに多いということです。

以降のセクションには、Fire TVのコードを検討するうえで考慮すべき相違点を挙げています。

Googleのサービス

Google固有のサービス(位置情報サービスなど)を利用するAPIは、HAQM Fire TVでは使用できません。HAQM Maps APIHAQMモバイル広告APIも、Fire TVではまだサポートされていません。

LeanBack Support Library

HAQM Fire TVでは、AndroidのLeanback Support Libraryを一部サポートしています。たとえば、Fire TVではLeanbackのTV用UIコンポーネントが使用されているため、Leanbackのウィジェットも実行できます。また、Fire TVがLEANBACK_LAUNCHERにタグ付けされたインテントを認識することもできます。しかし、LeanbackのSearchFragment(次のセクションで説明します)はサポートしていません。

Android TVでは、Leanback APIに基づくアプリコントロールが音声検索に使用されます(SearchFragmentによる音声認識など)。ただし、HAQM Fire TVの音声検索はLeanbackのSearchFragmentを使用しません。Fire TVでは、音声検索にHAQM固有のシステムコントロールが使用されます。

ユーザーがFire TVの任意の操作画面(ランチャー、アプリ内など)で音声対応リモコンのマイクボタンを押し、目的のTV番組やAlexaアクションを声に出して言うことで、グローバル検索が開始されます。このときに使用されるのはAlexaクラウドサービスであり、Leanbackライブラリの音声認識APIではありません。

音声によるメディアリクエストでは、常にHAQMカタログのコンテンツが返されます。詳細については、Fire TVに検索機能を実装するを参照してください。

Android TVでは、目的のコンテンツをグローバル検索に統合する場合、検索結果のContentProviderをアプリから使用してローカルに実現できます。

一方、HAQM Fire TVでグローバル検索の結果にコンテンツを表示させるには、メディアのコンテンツをHAQMカタログに統合する必要があります。カタログへの送信は、(アプリ内からローカルにではなく)クラウドベースモデルで実現されます。

オーディオフォーカス

一般のミュージックアプリで音楽を再生中にHAQM Fire TV対応アプリを起動しても、そのまま音楽の再生が続きます。再生/一時停止ボタンは、アプリのビデオではなく音楽の方を操作することになります。

オーディオフォーカスを取得するには、開発したアプリのマニフェストにMediaButtonReceiverを登録する必要があります。MediaButtonReceiverによって、アプリの起動時にオーディオフォーカスがアプリのメディアサービスに移動します。詳細とコードサンプルについては、オーディオフォーカスを参照してください。

早送り早戻しメニューボタン

Android TVにもHAQM Fire TVにも、4方向のD-Pad(ナビゲーション)、D-Padの選択ボタン、戻るボタン、再生/一時停止ボタンが備わっています。これに加えて、Fire TVには早戻しボタン、早送りボタン、メニューボタンもあります。

Fire TVのメニューボタンを押すと、Androidのコンテキストメニューが起動し、画面の中央にメニューアイテムのリストが表示されます。メニューボタンはオーバーライドが可能で、カスタムメニューのユーザーインターフェイスを提供したり、様々な目的に使用できます。

メニューアイテムが1つだけ必要な場合は、単純な切り替えスイッチ(クローズドキャプションのオン/オフなど)としてメニューボタンを使用することもできます。その際に、この機能をユーザーに知らせるヒントを画面に表示することもできます。

アプリ内課金

Android TVのアプリ内課金には、通常、Google Play請求サービスが使用されます。HAQM Fire TVのアプリ内課金では、HAQMのアプリ内課金(IAP)APIが使用されます。詳細については、両者の詳しい機能比較を参照してください。

アナリティクス

Android TVでは、分析ソリューションとしてFirebaseが使用されています。HAQM Fire TVでは、HAQM Mobile Analyticsやそのほかの分析パッケージ(Googleアナリティクス、Flurry Analytics、Crashlyticsなど)を使用できます。これらの分析パッケージの多くは、Fire App Builderを使用してアプリを開発する際にモジュールとして構成できます。

Firebase

アプリでFirebase SDKを使用していて、引き続きFirebaseを使用する場合は、代替手段の実装が必要になる可能性があります。一部のFirebase SDKはGoogle Play開発者サービスに依存していますが、このサービスはHAQMデバイスでは使用できません。

Firebase SDKを使用している場合は、まず、そのFirebase SDKにGoogle Play開発者サービスが必要かどうかを特定します。使用するサービスや機能がGoogle Play開発者サービスを必要としていなければ、HAQMデバイスでも引き続き使用できます。Firebase SDKがGoogle Play開発者サービスを必要としている場合は、代替プロダクトを使用するか、HAQMデバイスでFirebase機能を無効にすることができます。

使用しているFirebase SDKがサポート対象かどうかを確認する方法と、同等の機能や代替手段については、「既存のAndroidアプリをFire OSに移植する方法」のFirebaseと代替ライブラリを参照してください。

SDKレベル

Android TVでは、基本的に最新のAndroidバージョン(Nougatベース、APIレベル25)が使用されます。これに対してHAQM Fire TVデバイスでは、Fire OS 5(Lollipopベース、APIレベル22)またはFire OS 6(Nougatベース、APIレベル25)のいずれかを使用できます。各デバイスで使用されているFire OSのバージョンの詳細については、Fire OSのバージョンおよびFire TVのデバイス仕様を参照してください。

おすすめ機能

Android TVとHAQM Fire TVはどちらもホーム画面におすすめを表示できます。さらにFire TVでは、Fire TVだけの豊富なおすすめ拡張機能も提供されています。

エミュレーター

HAQM Fire TV対応アプリのコードをテストするときは、仮想エミュレーターではなく実際のFire TVデバイス(Fire TVセットトップボックスまたはFire TV Stick)を使用することになります。詳細については、ADBを使用してFire TVに接続する方法を参照してください。

通知API

HAQM Fire TV対応アプリで通知を作成するには、標準のAndroid通知APIを使用します。Fire TVには、Android TVと同じトースト通知と永続化モデルが備わっています。ただし、Fire TVはトースト通知のほかにもヘッドアップ通知に対応しており、インタラクティブなボタンを利用できます。

さらに、Fire TVでは、古い通知は通知ドロワーには格納されずに通知センターに保存されます。詳細については、HAQM Fire TVの通知機能を参照してください。

アクセシビリティ

HAQM Fire TVは、目の不自由な方にもアプリをご利用いただけるようにVoiceViewという補助機能を提供しています。VoiceViewとユーザー補助機能の詳細については、以下を参照してください。

アプリストア

Android TVデバイスでは、Google Playストアが使用されます。これに対してHAQM Fire TVでは、HAQMアプリストアが使用されます。Google Playストアへのリンクはすべて、HAQMアプリストアへのリンクに変更する必要があります。

アプリのテスト

AndroidアプリとHAQMとの互換性をテストするには、HAQM Fire TVデバイスにアプリをサイドロードします。詳細については、ADBを使用してFire TVに接続する方法を参照してください。

ADBを介してFire TVデバイスに接続し、Android Studioを使用してアプリを実行すると、正常に開発されたアプリであれば読み込まれ再生されます。サイドロードしたアプリを閉じるには、[設定] > [アプリケーション] > [インストール済みアプリケーションを管理] の順に選択してください。


Last updated: 2023年5月31日