強火で進め

このブログではプログラム関連の記事を中心に書いてます。

Android デベロッパー向けの Google TV 情報

Google Developer Day 2011に参加しました。

参加したセッションのメモを書いときます。

Googleは何故、Google TVを作ったのか

  • アメリカでは平均2.5人に2.86台TVが有る
  • アメリカ人は1日に平均5時間以上TVを見ている
  • 2010年には全てのテレビの20%にインターネットが機能が付いているものが販売されました
  • 2014年までに、スマートテレビの販売は123万に達すると予想されています

Google TVについての紹介

  • Integrated Search。複数のリソースに対して横断的に検索が可能
  • この様なコントローラが付属

  • 上下左右に移動可能なD-pad
  • メディアの再生や早送りなどが可能なメディアキー

  • リモコンのAndroidアプリも有る


UIデザインのTips
  • あなたのインターフェースの重要な部分を特定し、それらが適切に配置されていることを確認
  • 本質的でない情報とUIは非表示に
  • 柔軟性の有るレイアウトや拡張性の高いデータを使用(9-patch images)
  • UIデザイナを雇うことを検討
UIデザイン
  • 背景色は暗い色
  • ボールドのフォント
  • 行間をしっかり取る
  • テキストは短かく
ゾーン分けされたスクリーン画面

  • 実際にテレビに表示するとこんな感じ


選択とフォーカス

  • フォーカスの移動方法を考えてデザインする

  • グリッドデザインを活用すると良い

  • フォーカスされる順番の制御

ダメなデザイン例

この様なデザインだと中央の部分では全ての項目を移動した後でないと一番下のゾーンに移動出来ない

良いデザインの例

このデザインであれば簡単に左右へ移動可能

サイズ、解像度、density(ピクセル密度)

伸縮するレイアウトにする

オーバースキャン

オーバースキャンに注意。オーバースキャンについては以下のブログなどを参照。

オーバースキャン
http://d4.princess.ne.jp/multimedia/ntsc/overscan.html

フルHDのTVを買ったら 最低限ヤルべき事 [ホームシアター] All About
http://allabout.co.jp/gm/gc/51222/

チャンネルリストと変更方法

リモコン

左側のナビゲーションバー

オープンソースにて公開

ユーザの位置情報
LocationManager lm = (LocationManager)
  this.getSystemServer(Context.LOCATION_SERVICE);
Location loc = lm.getLastKnownLocation("static");
  • 位置情報の精度は粗い。郵便番号くらいの範囲でしか取得出来ない
開発に使うデバイス
  • Androidタブレット+Bluetoothキーボード→レイアウトの確認とナビゲーションのフォーカス移動をD-padの代わり矢印キーで確認が可能
  • Linux上で動作するエミュレータGoogle TV Add-on→レイアウト、スクリーンサイズ、メモリー、オーバースキャンの確認が可能
  • 物理デバイス(Google TVの事?)→オーバースキャン、パフォーマンス、ビデオ再生
心に留めておいて
  • NDKは無い
    • SurfaceView,RenderScript,OpenGLで頑張る
  • WebView vs Chrome & Flash
  • Wi-Fi & インサーネット
TVはソーシャルデバイス
  • 多くの場合、複数人が同時に使用する
  • ユーザのプライバシーデータの保護を考えて
  • 複数のアカウントおよびアカウントの切り替えの実装を検討して
利用可能な機能
機能の指定
  • タッチスクリーン機能の指定
<uses-feature
  android:name="android.hardware.touchscreen"
  android:required="false" />


|

  • ランタイムのチェック
getPackageManager().hasSystemFeature("com.google.android.tv");
マニフェストファイルの検証
  • "AAPT" SDKツールを使って検証する
$ aapt dump badging MyApplication.apk

このコマンドを実行して結果に以下の文字列が含まれているのを確認。

uses-feature-not-required:'android.hardware.touchscreen'
  • "android.hardware.camera"機能を確認して下さい

android.permission.CAMERA を削除するか「必要なし」と指定する

テレビでのテスト
  • テレビの表示モード(標準、ビビット、シネマ、ゲームなど)
  • コントラストとブライトネスのレベル
  • スクリーンサイズ(720と1080)
  • オーバースキャン(無補正で確認)
性能をテスト
  • アプリケーションの起動
  • アクティブティの切替時
  • Assetのロード時間(ネットワーク)
  • アニメーション
  • ビデオ再生
  • ナビゲーションとタイピングのレスポンス
  • ANRs?!(Application Not Respondingの事かな?)
マーケットにアップロード
  • 16:9のスクリーンショットを追加
  • 高解像度のアプリケーションアイコンを含める
  • 特徴を表したグラフィックを追加
  • 私たちに教えて下さい
お問い合わせはこちら!

http://code.google.com/tv

  • Stack Overflow:

[google-tv],[android]

@googletvdev,#googletv

http://profile.google.com/saxman

  • Contact form:

http://goo.gl/tVw4i