Noblesse Oblige

App/iOS/Android/Unity/cocos2d/VR/GameJam/Hackathon/肉 ブログの記事は勉強会の書きなぐりメモが多め

【Google for Mobile】F9 AndroidアプリをAndroid TVへ配信するには

概要&感想

  • Android TVの対応の仕方・コツ紹介
  • 評価:3
    • 作ってるアプリ上あまり縁がなさそうだけど、対応楽そう
    • 対応のさせ方は公式みればいい

セッション情報

  • 江川 崇 様
  • Google Developer Expert

初めに

  • 今あるアプリを少し変えればAndroidTV対応アプリが作れてしまう
  • 世の中にはたくさんのAndroidTV端末が出ている
  • 一つのapkでandroid / androidTV対応できる
  • multiple apk?で分けることもできる

TV bannerの追加

  • TVランチャーからアプリケーションを開くことが可能になる
  • アプリバナーはアプリケーションの起動ポイント隣ユーザーがアプリを直接操作可能になる f:id:kazuman519:20160726115705p:plain

バナーの制約

  • 320 x 180px xhdpiリソース
  • アプリ名が読めるようにすること(各国語分)

AndroidManifest.xml

android:banner="@drawable/my_app_banner"
android:isGame="true" // ゲームの場合はtrueにする
  • ゲームとそれ以外のアプリが別々のカテゴリとして表示される

起動Activityの定義

<category android:name="android.intent.category.LEANBACK_LAUNCHER">

これをつけることによってテレビ用のACtivityをつけることができる

ハードウェア要件

  • TVのハードウェア互換性はスマホタブレットと異なる
    • アプリはハードウェア機能がなくても動くことを明示する必要がある

manifest

<use-features
  android:name="android.hardware.touchscreen"
  android:required="false"
/>
  • パーミッション設定による暗黙的なハードウェア欲求雨
    • オーディオ
    • カメラ
    • ...
  • falseを設定しないと使うことが前提になってしまう

D-Padサポート

  • 方向キー
  • フォーカスは方向キーによって縦横に遷移する
  • 何かしらのオブジェクトにフォーカスを渡しておく必要がある
  • 幾つかのViewはエフォルトではフォーカスを受け取らないようになっている
    • ImageView,textView,LinearLayoutなど
  • プログラムでやりたい時はnextViewFocus()を渡してあげる

オーバースキャンの考慮

  • 1080p Screen Resolution
  • オーバースキャン:必ず描画するとは限らない領域
    • これを想定して描画する必要がある
    • 公式としては周囲5%としている
    • 写真撮った
  • LeanBackLibraryを使えばいい感じにやってくれる

Unity Support

  • 対応方法が載っているコードラボがある
  • オライリーで本出る
    • 「UnityによるVRアプリケーション開発」
    • DayDreamの事も書かれてる

Leanback Library

BrouseFragment

  • 全てのコンテンツを一箇所にまとめた画面

DetailsFragment

  • コンテンツの詳細を表示する画面

PlaybackOverkayFragment

  • 画面にオーバーレイされるフラグメントで、プレイヤーの操作ができる

SearchFragment

  • 音声の検索を提供するコンポーネント
  • 文字の入力がとても困難なので音声の入力は重宝される
  • ユニバーサルサーチ
    • マイクタップでグローバル検索を可能
    • ContentProviderを実装することでサーチを許可する
    • android:exproted="true"
    • 他にも何かtrueにするらしい

おすすめ

自分のアプリから何をおすすめするべきか

  • 次のコンテンツ
  • 新しいコンテンツ
  • 関連コンテンツ

使いたい場合

  • build.gradleleanbackreccomendationをcompileで指定

APKの配信

  • スマホタブレットと大きく違う点として、TVのアプリはレビューが必要になる
    • これが通らないとリリースできない
  • コンソールのDistribute your app on Android TV.にチェックをつけることでレビューが行われる

どんなレビューされるの?

  • ガイドラインに準拠されているか
    • 主にUI面
      • Leanback launcherあるか
      • TV用バナー画像規定を満たしているか
      • サポート外のハードウェアの依存を排除
      • パーミッション設定による暗黙的なハードウェア欲求の確認
      • ランドスケープ対応(重要)
      • 距離が離れていても見えるようになっているか
      • オーバースキャンの対応されているか
      • LEanback UIの対応されているか
    • ガイドラインにチェックリストあるよ
      • developer.andorid.com/training/tv/publishing/check_list