Honeycomb 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 デバイスに接続して、使い慣れた環境を構築し、より効率的に作業できるようになりました。1 つ以上の入力デバイスを USB または Bluetooth HID を介して、任意の組み合わせでシステムに同時に接続できます。ほとんどの場合、特別な構成やドライバは必要ありません。複数のデバイスが接続されている場合、ユーザーはシステムバーから利用できるキーボード設定を使用して、アクティブなキーボードと IME を簡単に管理できます。

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

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

Android 3.1 では、プラットフォームをゲーム向けにさらに改善するために、USB または Bluetooth HID 経由で接続されるほとんどの PC ジョイスティックとゲームパッドのサポートが追加されています。

たとえば、PlayStation®3 ゲーム コントローラや Xbox 360® ゲーム コントローラを USB 経由で接続できます(Bluetooth は不可)。Logitech Dual Action™ ゲームパッドやフライト スティック、カー レース コントローラも接続できます。独自のネットワーキングまたはペア設定を使用するゲーム コントローラはデフォルトではサポートされていませんが、一般に、このプラットフォームは 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)に対応しました。これにより、ユーザーは USB 経由でカメラを接続し、タップ 1 回でギャラリーに写真をインポートできるようになりました。また、このアプリは写真をローカル ストレージにコピーし、使用可能な容量を示すインジケーターを表示します。

図 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(ユニバーサル シリアル バス)スタックとサービスに基づいています。このプラットフォームは、接続されたハードウェアを検出して識別するサービスと、ハードウェアが利用可能であることを関心のあるアプリに通知するサービスを提供します。

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

アクセサリ モードは、アプリ デベロッパーとアクセサリ メーカーにとって、ユーザーを引き付け、接続されたハードウェアで強力な操作エクスペリエンスを構築するための新しい方法を数多く提供します。

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

USB ホスト API

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

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

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

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

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

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

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

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

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

外部カメラとの統合用の MTP API

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

RTP API: 音声ストリーミング セッションを制御する

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

パフォーマンスの最適化

Android 3.1 には、アプリケーションの高速化と応答性の向上に役立つさまざまなパフォーマンス最適化が含まれています。最適化の例をいくつか示します。

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