Android 4.1 (JellyBean) の新機能・改善点(後編)

前エントリからの続きです。

新しい入力タイプと能力


バイスの追加と除去の検知
  • アプリケーションはUSBやBluetooth、その他の接続タイプの入力デバイスがアタッチされた時に通知を受けることができるようになった
入力デバイスの能力の問い合わせ
  • Android 4.1は入力デバイスが接続され使用可能になったことをアプリやゲーム知らせるAPIを含んでいる
  • アプリは現在アタッチされている入力デバイスを管理し、その能力を知る
入力デバイスバイブレータの制御

アニメーションとグラフィックス

Vsync for apps
  • 全ての描画やアニメーションのvsyncのタイミング拡張することで、UIのフレームレートを保証しスムーズに動作させることができるようになった
  • Choreographerクラスを使うと次のvsyncフレームでinvalidationのリクエストを送ることができる(アプリがアニメーションフレームワークを使用しない場合に、アニメーションをスケジューリングする良い方法)
  • さらに高度な使い方として、次のフレームの実行時にChoreographerクラスのコールバックをポストすることが可能である
新しいアニメーションのアクションと遷移のタイプ
  • アニメーションフレームワークは、ViewPropertyAnimator が動作している時に開始と終了を定義することができ、アプリ中の他のアニメやアクションと同期するのに役立つ
  • アクションはどんな実行オブジェクトにも適用可能。例えば、前のアニメーションが終了したら他のアニメーションを開始させることが可能。
  • アニメーション中のレイヤーをViewPropertyAnimatorが使用するように定義可能。以前はアニメーションを開始する前にセットアップし、アニメーションを終了する時にレイヤーを取り除くためにonAnimationEnd() を使用していた。今は、ViewPropertyAnimatorのwithLayer() メソッドを単純に呼ぶだけ済む。
  • ViewGroupのすべてのレイアウトの変更に応じて、LayoutTransitionの中の新しい遷移のタイプによってアニメーションを自動化する

新しいタイプの接続

Android Beam
  • Android 4.1 では、Bluetoothのデータ転送をテコ入れすることで、Android Beamでより簡単に画像・ビデオ・その他のペイロードをシェアすることが可能となった。
  • ユーザが転送のトリガを引くと、Android Beamは NFC から Bluetoothへハンドオーバーし、ある端末から別の端末へのファイル転送を簡単に行うことができる。
Wi-fi ネットワークサービスのディスカバリ
  • マルチキャストDNSベースのサービスディスカバリをサポート
  • アプリはWi-Fiネットワーク上のピアデバイス(モバイルデバイス、プリンタ、カメラ、メディアプレイヤー他)を発見し、提供されているサービスに接続
  • クロスプラットフォームマルチプレイヤーのゲームをビルドするために、Wi-Fiネットワークサービスディスカバリの恩恵を受ける
  • サービスディスカバリAPIを使うとアプリは様々な種類のサービスの生成と登録、他のNSDが有効なデバイスの発見が可能。
  • サービスは人間が判読可能な文字列の識別子を使ってネットワークにマルチキャストされて知らされ、ユーザは簡単にサービスの種類を識別することができる。
  • コンシューマデバイスは、ローカルのWi-Fiネットワークに接続されているデバイスから使用可能なサービスをスキャンし、発見するためにAPIを使用する。発見後はソケット通信によってIPアドレスとポートをサービスで解決。
  • APIを使用して、ウェブカメラやプリンタやWi-Fiのピアツーピア接続をサポートしたモバイルデバイスに接続するようなアプリを作成することが可能。
Wifi-Direct サービスのディスカバリ
  • Android 4.1で pre-associatedサービスディスカバリをサポートするAPIを追加。
  • pre-associatedサービスディスカバリにより、接続前に近くのデバイスからサポートしているサービスについてより有用な情報を取得する
  • アプリは特定のサービスの発見を始めることができ、フィルタリングすることもできる。
  • Wi-Fi ダイレクトサービスディスカバリにより、ダイレクトにp2pのみで接続できるのでインターネットやモバイルネットワークを使わずに、写真・ビデオ・ゲーム・スコア他をシェアするマルチプレイヤーゲームやアプリを作ることが可能となる
ネットワークのバンド幅の管理
  • モバイルホットスポットなどへのテザリングを含む、帯域が制限されているネットワークに接続しているデバイスのデータ使用量を管理することが可能
  • アプリはダウンロードを始める前に現在のネットワークが制限されているかどうかを調べることが可能

新しいメディアの能力

メディアコーデックのアクセス
  • プラットフォームのハードウェアとソフトウェアコーデックの低レベルアクセスを提供する
  • アプリはデバイスで使用可能な低レベルメディアコーデックを見つけることができ、必要に応じて使用することが可能
  • バイスDRMで保護されているコンテンツを再生できるかどうかを調べることも可能
USB オーディオ
オーディオレコードトリガー
  • オーディオ再生トラックの完了に基づいて、オーディオ録音をトリガする
  • ユーザーが音声を記録するために話し始める際に、ユーザーにキューの合図を出すようなシチュエーションで有効
マルチチャネルオーディオ
  • Android 4.1はHDMIポートを通じて、マルチチャネルオーディオハードウェアを持つデバイス上で、マルチチャネルオーディオをサポートする
  • もしデバイスがサポートするハードウェアを有していない場合は、Androidは自動的にチャネルをダウンミックスする(大抵はステレオ)
  • Android 4.1では、AAC 5.1 オーディオのエンコード/デコードをサポートする
オーディオ処理
  • 開発者は、次のような目的のために記録されているオーディオに前処理を施す事が可能
    • スピーチ録音品質を改善するための雑音抑制
    • 反響音のエコーキャンセル
    • 一貫しないボリューム・レベルのための自動利得制御
オーディオの連結
  • メディアプレイヤーは、休止のないオーディオを再生するためにストリームを連結することができる。
  • 音楽をシームレスに再生するようなシーンで使用する場合に便利
メディアルーター
  • 新しいAPIのMediaRouter, MediaRouteActionProvider, MediaRouteButtonは、標準的なメカニズムとどこでメディアを再生するかを選択させるためのUIを提供する
  • 有線のヘッドセット、A2DPBluetoothのヘッドセットとスピーカーのビルトインをサポート
  • 自身のアプリのための独自ルートオプションを追加することが可能。

レンダースクリプト計算

AndroidのブラウザとWebView

Android 4.1では、AndroidブラウザとWebViewに下記の拡張を含んでいる:

  • HTML5ビデオのユーザーエクスペリエンスの向上(タッチtoプレイ/ポーズとインラインからフルスクリーンモードへのスムーズな遷移を含む)
  • スクロールとズームのパフォーマンス向上のため、レンダリングスピードとメモリ使用量の削減するように改善
  • HTML5/CSS3/Canvasのアニメーションパフォーマンスの改善
  • テキスト入力の改善
  • JavaScriptエンジン(V8)のパフォーマンスの改善のための更新
  • HTML5メディアキャプチャー仕様の更新 (input type=file要素の"capture"属性)

Google APIsとサービス

Androidの能力をさらに拡張するために、Androidのためのいくつかの新しいサービスが利用可能です。

Google クラウドメッセージング for Android
  • Google クラウドメッセージング (GCM) は同期を専有せずに、Android端末間でショートメッセージデータを送信する仕組み
  • GCMはキューイングされたメッセージの詳細を扱い、ターゲットのAndroidバイスに効果的に配信する
  • メッセージのマルチキャストをサポートしており、単一リクエストにおいて1000接続まで可能
  • 最大4Kまでのデータの送信が可能
アプリの暗号化
  • Android 4.1から、Google Playは全ての有料アプリが端末に配信され格納される前にデバイス特有のキーでassetsの暗号化することでアプリケーションの保護を行う
Smart App Updates
  • Smart App Updatesは デバイスのアップデートの配信をより良い方法で提供するGoogle Playの新しい機能
  • デベロッパーがアップデートを公開したら、Google PlayはAPK全体ではなく、変更されたビットだけを配信する
  • これは大抵の場合、アップデートの軽量化になり、ダウンロードの高速化とバッテリーのセーブ、ユーザーのモバイルデータプランの使用量を抑えることができる
  • 平均してsmart app updateは全体のAPKの約1/3のサイズになる
Google Playサービス(近日公開)
  • Google Playサービスは、Google Playを通じて配信されるアプリの中に Google+や認証のようなGoogleのサービスを統合するのに役立つ
  • Google Playサービスは、エンドユーザーのデバイスに自動的に提供されるため、デベロッパーは薄いクライアントライブラリをアプリ中に含めるだけで良い

文責:カスタマー開発部 品川開発課 瀬戸 直喜