ハニカム MR1

Android 3.1 へようこそ!

Android 3.1 は増分プラットフォーム リリースで、Android 3.0 で導入された機能の多くが改良されています。Android 3.0 で提供されているものと同じタブレット用に最適化された UI と機能を基盤とし、ユーザーとデベロッパー向けにいくつかの新機能が追加されています。このドキュメントでは、Android 3.1 で導入された新機能と技術の概要について説明します。新しいデベロッパー API について詳しくは、API の概要のドキュメントをご覧ください。

Android 3.0 の概要については、Android 3.0 プラットフォームの特長をご覧ください。

新しいユーザー機能

図 1. Android 3.1 のホーム画面。

UI の改良

Android 3.1 プラットフォームでは、ユーザー インターフェースをより直感的かつ効率的に使用できるように、さまざまな改良点が追加されています。

UI の遷移が、システム全体と標準アプリで改善されました。ランチャー アニメーションは、アプリリスト間の遷移を迅速かつスムーズに行えるよう最適化されています。色、配置、テキストを調整することで、UI 要素が見やすく、わかりやすく、使いやすくなります。UI 全体で一貫した可聴フィードバックや、ユーザーがニーズに合わせて長押しの間隔をカスタマイズできる新しい設定により、ユーザー補助機能が改善されています。

5 つのホーム画面間の移動が簡単になりました。システムバーのホームボタンをタップすると、最後に使用したホーム画面に移動できます。[設定] では内部ストレージのビューが改善され、より多くのファイル形式で使用されるストレージを確認できます。

USB アクセサリの接続

Android 3.1 では、USB 接続されたさまざまな周辺機器とアクセサリに対する幅広いプラットフォーム サポートが追加されています。ユーザーは、さまざまな種類の入力デバイス(キーボード、マウス、ゲーム コントローラ)とデジタルカメラを接続できます。プラットフォームの USB サポートを利用してアプリを構築し、ほぼすべてのタイプの USB デバイスに接続を拡張できます。

また、USB アクセサリ(Android 搭載デバイスに USB ホストとして接続できるように設計された外部ハードウェア デバイス)に対する新しいサポートも追加されています。アクセサリが接続されると、フレームワークは対応するアプリを探して、起動することをユーザーに提案します。アクセサリは、適切なアプリがインストールされていない場合にそのアプリをダウンロードするための URL をユーザーに提示することもできます。ユーザーは、アプリを操作して、ロボット コントローラ、ドッキング ステーション、診断機器と音楽機器、キオスク、カードリーダーなど、電力を供給するアクセサリを制御できます。

プラットフォームの USB 機能はデバイス ハードウェアのコンポーネントに依存するため、デバイスによって USB のサポート状況が異なる場合があります。また、サポート状況はデバイス メーカーによって決定されます。

図 2. [最近使ったアプリ] メニューを展開およびスクロールできるようになりました。

最近使ったアプリのリストを展開しました

マルチタスクを改善し、多数のアプリに簡単にアクセスできるように、[最近使ったアプリ] リストを展開できるようになりました。最近使ったアプリのリストを縦方向にスクロールすると、進行中のすべてのタスクと最近使用したアプリのサムネイル画像が表示され、サムネイルをタップしてそのタスクに戻ることができます。

サイズ変更可能なホーム画面ウィジェット

ホーム画面をより柔軟にカスタマイズできるように、システムから提供されるドラッグバーを使用して、ホーム画面ウィジェットのサイズを変更できるようになりました。ユーザーは、ウィジェットを水平方向と垂直方向の両方で拡張して、より多くのコンテンツを含めることができます(各ウィジェットでサポートされている場合)。

外部キーボードとポインティング デバイスのサポート

ユーザーは、ほぼすべての種類の外部キーボードやマウスを Android 搭載デバイスにアタッチして、使い慣れた環境を構築し、より効率的に作業できるようになりました。USB または Bluetooth HID(あるいはその両方)で、1 つ以上の入力デバイスを任意の組み合わせで同時にシステムに接続できます。ほとんどの場合、特別な構成やドライバは必要ありません。複数のデバイスが接続されている場合、ユーザーはシステムバーから利用可能なキーボード設定を使用して、アクティブなキーボードと IME を簡単に管理できます。

ポインティング デバイスの場合、プラットフォームは 1 つのボタンとスクロール ホイールを備えたほとんどのタイプのマウスと、トラックボールなどの同様のデバイスをサポートします。これらが接続されている場合、ユーザーはポイント、選択、ドラッグ、スクロール、カーソルを合わせるなどの標準アクションを使用して、UI を操作できます。

ジョイスティックとゲームパッドのサポート

Android 3.1 では、ゲームを快適にプレイできるように、USB または Bluetooth HID 経由で接続されたほとんどの PC ジョイスティックとゲームパッドのサポートが追加されています。

たとえば、PlayStation®3 や Xbox 360® のゲーム コントローラを USB(Bluetooth は不可)、Logitech Dual ActionTM ゲームパッドやフライト スティック、カーレーシング コントローラ経由で接続できます。独自のネットワーキングまたはペア設定を使用するゲーム コントローラは、デフォルトではサポートされていませんが、一般に、プラットフォームは PC に接続可能なほとんどのジョイスティックとゲームパッドをサポートしています。

堅牢な Wi-Fi ネットワーク

Android 3.1 には堅牢な Wi-Fi 機能が追加されています。これにより、ユーザーとアプリは、自宅、職場、外出先で高速 Wi-Fi アクセスを最大限に活用できます。

新しい高性能 Wi-Fi ロックにより、デバイスの画面がオフの場合でも、アプリは高性能な Wi-Fi 接続を維持できます。ユーザーはこの機能を利用して、デバイスがアイドル状態で画面がオフの場合でも、連続してストリーミングされた音楽、動画、音声サービスを長時間再生できます。

ユーザーは、[設定] でアクセス ポイントを長押しします。これにより、個々の Wi-Fi アクセス ポイントごとに HTTP プロキシを設定できるようになりました。ブラウザは、アクセス ポイント経由でネットワークと通信する際に HTTP プロキシを使用します。他のアプリもそのように使用することができます。プラットフォームは、ユーザー定義の IP 設定とプロキシ設定のバックアップと復元機能も備えています。

プラットフォームは、優先ネットワーク オフロード(PNO)のサポートを追加します。これは、Wi-Fi を長時間連続して使用する必要がある場合に、バッテリーを節約するバックグラウンド スキャン機能です。

標準アプリのセットを更新しました

Android 3.1 プラットフォームには、大画面デバイス向けに最適化された最新の標準アプリセットが含まれています。以下のセクションでは、新しい機能の一部について説明します。

図 3. ブラウザのクイック コントロール メニュー。

ブラウザ

ブラウザアプリには、ウェブ コンテンツをよりシンプル、高速、便利に表示するためのさまざまな新機能と UI の改善が含まれています。

ブラウザ設定からアクセスできるクイック コントロール UI を拡張し、デザインを一新しました。ユーザーは、コントロールを使用して、開いているタブのサムネイルを表示したり、アクティブなタブを閉じたりできます。また、オーバーフロー メニューにアクセスして、設定やその他のコントロールにすぐにアクセスできるようになりました。

一貫したビュー エクスペリエンスを実現するため、ブラウザは CSS 3D、アニメーション、CSS 固定位置などの一般的なウェブ標準のサポートを、モバイルまたはデスクトップのすべてのサイトに対して拡張しています。また、HTML5 動画コンテンツの埋め込み再生のサポートも追加されています。お気に入りのコンテンツを簡単に管理できるように、ユーザーは、すべてのスタイルと画像を含むウェブページをローカルに保存し、オフラインで表示できるようになりました。Google サイトにアクセスする際の利便性を高めるために、改善された自動ログイン UI を使用すると、複数のユーザーがデバイスを共有しているときに、ユーザーはすばやくログインし、アクセスを管理できます。

最適なパフォーマンスを実現するために、ブラウザでは、ハードウェア アクセラレーテッド レンダリングを使用するプラグインのサポートが追加されています。ページのズームのパフォーマンスも大幅に改善され、ウェブページをすばやく移動して表示できるようになりました。

ギャラリー

ギャラリー アプリは、画像転送プロトコル(PTP)をサポートするようになりました。そのため、ユーザーは 1 回のタップで、USB 経由でカメラを接続して写真をギャラリーにインポートできます。また、写真をローカル ストレージにコピーし、ユーザーが空き容量を確認するためのインジケーターも表示します。

図 4.ホーム画面のウィジェットのサイズを変更できるようになりました。

カレンダー

カレンダーのグリッドは大きくなったため、読みやすく、タップ ターゲットの精度も向上しています。さらに、カレンダー リストのコントロールを非表示にして、グリッドの表示領域を大きくすることもできます。日付選択ツールのコントロールのデザインが刷新され、見やすく使いやすくなりました。

連絡先

連絡帳アプリで、全文検索を使用して連絡先を簡単に見つけられるようになりました。検索では、連絡先に保存されているすべてのフィールドから一致する結果が返されます。

メール

HTML メッセージの返信または転送の際、メールアプリは書式なしテキストと HTML 本文の両方をマルチパート MIME メッセージとして送信するようになりました。これにより、すべての受信者に対してメッセージが適切に書式設定されます。IMAP アカウントのフォルダ接頭辞の定義や管理が容易になりました。バッテリーを節約し、モバイルデータの使用量を最小限に抑えるために、アプリは、デバイスが Wi-Fi アクセス ポイントに接続されている場合にのみ、サーバーからメールをプリフェッチするようになりました。

ホーム画面ウィジェットが新しくなり、より多くのメールにすばやくアクセスできるようになりました。ウィジェットの上部にあるメールアイコンをタップすると、[受信トレイ]、[未読]、[スター付き] などのラベルを順番に切り替えることができます。ウィジェット自体を、水平方向と垂直方向の両方でサイズ変更できるようになりました。

エンタープライズ サポート

接続済みの Wi-Fi アクセス ポイントごとに HTTP プロキシを設定できるようになりました。 これにより、管理者はユーザーと連携して、プロキシのホスト名、ポート、バイパス サブドメインを設定できます。このプロキシ設定は、Wi-Fi アクセス ポイントが接続されたときにブラウザによって自動的に使用され、必要に応じて他のアプリで使用されることもあります。これで、システムの更新とリセット時にプロキシと IP の構成がバックアップされ、復元されるようになりました。

タブレット ユーザーのニーズを満たすため、プラットフォームでは、エミュレートされたストレージ カードと暗号化されたプライマリ ストレージを備えたデバイスで、「暗号化されたストレージ カード」のデバイス ポリシーを受け入れることができるようになりました。

デベロッパー向け新機能

Android 3.1 プラットフォームでは、デベロッパーが開発に使用できる改良や新機能が追加され、タブレットなどの大画面デバイスでパワフルで魅力的なアプリ エクスペリエンスを実現しています。

周辺機器とのリッチなインタラクションを実現する Open Accessory API

Android 3.1 では、ハードウェア アクセサリをプラットフォーム上で実行されるアプリと統合するための新しい API が導入されています。この API を使用すると、ロボット コントローラから音楽機器、エクササイズ 自転車まで、幅広い周辺機器と連携できます。

この API は、プラットフォームに組み込まれた新しい USB(Universal Serial Bus)スタックとサービスに基づいています。このプラットフォームは、接続されているハードウェアを検出および識別し、関係するアプリにハードウェアが使用可能であることを通知するためのサービスを提供します。

ユーザーが USB アクセサリを接続すると、プラットフォームは製品名、アクセサリ タイプ、メーカー、バージョンなどの識別情報を受け取ります。プラットフォームはアクセサリとの通信をセットアップし、その情報を使用して対象アプリを通知し、アプリがある場合は起動します。必要に応じて、アクセサリでは、ユーザーがそのアクセサリと連携するアプリを検索してダウンロードするための URL を指定できます。これらの検出機能により、ユーザーは初回セットアップを簡単に行い、接続されたハードウェアとやり取りするための適切なアプリを利用できるようになります。

アプリケーション デベロッパーとアクセサリ メーカーは、アクセサリ モードを使用することで、さまざまな新しい方法でユーザーを引きつけ、接続されたハードウェアを使用して優れたインタラクション エクスペリエンスを構築できます。

アクセサリとやり取りするアプリの開発方法については、USB アクセサリのドキュメントをご覧ください。

USB ホスト API

Android 3.1 は、USB ホストモードの組み込みのプラットフォーム サポートを提供し、接続されている周辺機器をアプリが管理するための API を公開しています。ホストモードをサポートするデバイスでは、アプリケーションはこの API を使用して、オーディオ デバイス、入力デバイス、通信デバイス、ハブ、カメラなどの接続済みデバイスを識別して通信できます。

USB デバイスを操作するアプリを開発する方法については、USB ホストのドキュメントをご覧ください。

マウス、ジョイスティック、ゲームパッドからの入力

Android 3.1 では入力イベント システムを拡張し、すべてのビューとウィンドウでさまざまな新しい入力ソースとモーション イベントをサポートしています。デベロッパーはこれらの機能を基に、ユーザーがキーボードやタッチスクリーンに加えて、マウス、トラックボール、ジョイスティック、ゲームパッドなどのデバイスを使用してアプリを操作できるようにします。

マウスとトラックボールの入力に関しては、プラットフォームは 2 つの新しいモーション イベント アクションをサポートしています。1 つはスクロール ホイールなどのスクロール(水平方向または垂直方向)です。もう 1 つは、ボタンが押されていないときにマウスの位置をレポートするホバーです。アプリケーションは、これらのイベントを必要な方法で処理できます。

ジョイスティックやゲームパッドの場合、プラットフォームには、X、Y、帽子 X、帽子 Y、回転、スロットル、圧力、サイズ、タッチ、ツール、向きなど、特定の入力ソースからアプリが使用できる多数のモーション軸が用意されています。デベロッパーは必要に応じてカスタム軸を定義して、他の方法でモーションをキャプチャすることもできます。このプラットフォームは、モーション イベントをアプリにバッチとして提供します。アプリは、バッチに含まれる動きの詳細をクエリして、イベントをより効率的かつ正確に処理できます。

アプリケーションは、接続されている入力デバイスと、各デバイスでサポートされているモーション範囲(軸)のリストを照会できます。また、1 つの入力デバイスからの複数の入力イベントとモーション イベントを処理することもできます。たとえば、1 つの入力デバイスからマウス、ジョイスティック、マウスのイベント ソースを使用できます。

サイズ変更可能なホーム画面ウィジェット

デベロッパーは、ユーザーが水平方向、垂直方向、またはその両方のサイズを変更できるホーム画面ウィジェットを作成できるようになりました。ウィジェットの宣言に属性を追加するだけで、ウィジェットを水平方向、垂直方向、またはその両方にサイズ変更できます。これにより、ユーザーはウィジェット コンテンツの表示をカスタマイズしたり、ホーム画面に他の部分を表示したりできます。

外部カメラと統合するための MTP API

Android 3.1 では、新しい MTP(Media Transfer Protocol)API により、接続されたカメラやその他の PTP デバイスと直接連携するアプリを作成できます。新しい API を使用すると、デバイスの接続時と取り外し時の通知の受信、デバイス上のファイルとストレージの管理、ファイルとメタデータの転送を簡単に行うことができます。MTP API は、MTP 仕様の PTP(画像転送プロトコル)サブセットを実装しています。

RTP API、音声ストリーミング セッションの制御用

Android 3.1 では、組み込みの RTP(リアルタイム トランスポート プロトコル)スタックに API を公開しています。アプリはこのスタックを使用して、オンデマンドまたはインタラクティブなデータ ストリーミングを直接管理できます。特に、VOIP、プッシュツートーク、会議、音声ストリーミングを提供するアプリでは、この API を使用してセッションを開始し、利用可能なネットワークを介してデータ ストリームを送受信できます。

パフォーマンスの最適化

Android 3.1 には、アプリの速度と応答性の向上に役立つさまざまなパフォーマンス最適化が含まれています。次のような最適化があります。

  • 新しい LRU キャッシュ クラスを使用すると、アプリは効率的なキャッシュを利用できます。アプリでこのクラスを使用することで、キャッシュに保存されたデータのメモリ フットプリントを適切に維持しながら、ネットワークからのデータの計算やダウンロードにかかる時間を短縮できます。
  • UI フレームワークは、ハードウェア アクセラレーションされたビューでの部分的な無効化をサポートするようになりました。これにより、ビューでの描画オペレーションがより効率的になります。
  • 新しいグラフィック メソッドである setHasAlpha() を使用すると、特定のビットマップが不透明であることをアプリで通知できます。これにより、一部のタイプのブリットのパフォーマンスがさらに向上します。これは、ARGB_8888 ビットマップを使用するアプリで特に役立ちます。