ジンジャーブレッド

Android 2.3 プラットフォームには、ユーザーとデベロッパー向けの魅力的な新機能が数多く導入されています。このドキュメントでは、Android 2.3 の新機能とテクノロジーの一部を紹介します。デベロッパー向けの新しい API について詳しくは、Android 2.3 バージョン ノートをご覧ください。

新しいユーザー機能

シンプルさとスピードのために UI を改善

ユーザー インターフェースはシステム全体でさまざまな方法で改良され、学習が容易になり、使いやすく、電力効率も向上しています。黒を背景にしたシンプルなビジュアル テーマにより、通知バー、メニュー、UI の他の部分が鮮明でコントラストになります。メニューや設定を変更することで、ユーザーはシステムやデバイスの機能を簡単に操作、制御できます。

より速く直感的なテキスト入力

Android ソフト キーボードは、テキストの入力と編集を高速化するように再設計され、最適化されています。ターゲティングを改善するためにキー自体の形状と位置が変更され、高速でも見やすく正確に押せるようになりました。キーボードには、現在の文字と辞書の候補が、読みやすい大きく鮮やかなスタイルで表示されます。

キーボードには、辞書の候補から入力した単語を修正する機能が追加されています。入力済みの単語をユーザーが選択すると、候補がキーボードに表示され、選択内容を置き換えることができます。音声入力モードに切り替えて、選択範囲を置き換えることもできます。スマート候補を使用すると、ユーザーは候補を受け入れて、必要に応じて元の候補セットから後で修正することができます。

新しいマルチタッチ キーコードを使用すると、ユーザーは手動で入力モードを切り替えることなく、Shift+<文字> キーと ?123+<記号> キーを押すだけで、数字や記号をすばやく入力できます。特定のキーでは、キーを長押ししてスライドして文字を選択すると、アクセント記号付き文字、数字、記号のポップアップ メニューが表示されます。

ワンタッチで単語の選択とコピー/貼り付けが可能

テキストの入力やウェブページの表示中に、長押しして単語を選択し、クリップボードにコピーして貼り付けることができます。単語を押すと、自由選択モードになります。ユーザーは、一連の境界矢印を新しい位置にドラッグして選択領域を調整し、選択領域の任意の場所を押して境界領域をコピーできます。テキスト入力の場合、ユーザーはスライドを押してカーソルモードに入り、カーソル矢印をドラッグすることで、カーソルを簡単かつ正確に移動できます。選択モードとカーソル モードの両方で、トラックボールを使用する必要はありません。

電源管理の改善

Android システムは、バックグラウンドでの実行中にデバイスの起動状態を長時間継続するアプリや CPU を消費するアプリを積極的に管理する必要があります。このようなアプリを管理し(必要に応じてアプリを閉じる)ことで、システムは最大限のパフォーマンスと最大限のバッテリー寿命を確保します。

また、システム コンポーネントや実行中のアプリが消費する電力も把握できます。[アプリ] 設定では、各コンポーネントまたはアプリの消費電力や相対的な消費電力などの詳細とともに、バッテリーがどのように使用されているかを正確に把握できます。

アプリケーションの管理

ホーム画面とランチャーのオプション メニューに [アプリケーションの管理] コントロールへのショートカットが表示されるようになり、アプリのアクティビティの確認と管理が簡単になりました。ユーザーが [アプリケーションの管理] に移動すると、新しい [実行中] タブに、アクティブなアプリケーションと、それぞれが使用しているストレージとメモリのリストが表示されます。ユーザーは、各アプリの詳細を確認したり、必要に応じてアプリの停止や、デベロッパーにフィードバックを報告したりできます。

新しいコミュニケーション方法、情報整理方法

更新された標準アプリケーション セットを使用すると、ユーザーは情報と関係を管理する新しい方法を使用できます。


インターネット通話

ユーザーは、SIP アカウントを持っている他のユーザーに、インターネット経由で音声通話を行うことができます。ユーザーは、任意の連絡先にインターネット通話番号(SIP アドレス)を追加したり、クイック コンタクトまたは電話アプリから通話を開始したりできます。インターネット通話を使用するには、ユーザーは任意の SIP プロバイダでアカウントを作成する必要があります。SIP アカウントはインターネット通話機能の一部として提供されません。また、特定のデバイスでのプラットフォームの SIP 機能とインターネット通話機能のサポートは、メーカーおよび関連する携帯通信会社によって異なります。

近距離無線通信

NFC リーダー アプリケーションを使用すると、ユーザーは近距離無線通信(NFC)タグの読み取りと操作を行うことができます。たとえば、ユーザーはポスター、ステッカー、広告に埋め込まれている NFC タグを「タップ」または「スワイプ」し、タグから読み取られたデータを操作できます。通常は、レストラン、店舗、またはイベントでタグを読み取り、URL がタグデータに含まれているウェブサイトにアクセスして評価または登録を行います。NFC 通信はデバイス ハードウェアのワイヤレス技術に依存しているため、特定のデバイスでのプラットフォームの NFC 機能のサポートはメーカーによって決定されます。

ダウンロードの管理

ダウンロード アプリケーションを使用すると、ブラウザ、メール、その他のアプリケーションからダウンロードしたファイルにユーザーが簡単にアクセスできます。ダウンロードは、他のアプリケーションが使用できるまったく新しいダウンロード マネージャー機能上に構築されており、ダウンロードの管理と保存がより簡単になります。

カメラ

このアプリでは、ユーザーがデバイス上の複数のカメラ(利用可能な場合は前面カメラを含む)にアクセスできるようになりました。

デベロッパー向け新機能

Android 2.3 には、デベロッパーが新しいタイプのアプリを Android プラットフォームに導入するためのさまざまな機能と API が用意されています。

ゲーム向けの機能強化

パフォーマンス

Android 2.3 では、システム全体でさまざまな改善が行われており、すべてのアプリで一般的なオペレーションをより迅速かつ効率的に行うことができます。ゲーム デベロッパーが特に関心を持っている分野は次のとおりです。

  • 同時ガベージ コレクタ - Dalvik VM には、アプリケーションの一時停止を最小限に抑える新しい同時ガベージ コレクタが導入されています。これにより、ゲームや同様のアプリケーションでのスムーズなアニメーションと応答性の向上を実現できます。
  • イベント配信の高速化 - プラットフォームはタッチイベントとキーボード イベントを迅速かつ効率的に処理し、イベント配信中の CPU 使用率を最小限に抑えます。この変更により、すべてのアプリで応答性が向上しますが、特に、タッチイベントを 3D グラフィックスなどの CPU 負荷の高いオペレーションと組み合わせて使用するゲームで役立ちます。
  • 更新されたビデオドライバ - プラットフォームは、OpenGL ES オペレーションの効率を向上させ、全体的な 3D グラフィックス パフォーマンスを高速化する、更新されたサードパーティビデオドライバを使用しています。

ネイティブ入力とセンサー イベント

ネイティブ コードを使用するアプリケーションは、ネイティブ コードで直接入力イベントとセンサー イベントを受け取って処理できるようになり、効率と応答性が大幅に向上します。

プラットフォームによって公開されるネイティブ ライブラリを使用すると、アプリは、フレームワークを介して利用できるものと同じタイプの入力イベントを処理できます。アプリケーションは、サポートされているすべてのセンサータイプからイベントを受信し、特定のセンサーの有効化/無効化、イベント配信レートとキューイングの管理を行うことができます。

ジャイロスコープとその他の新しいセンサーによる 3D モーション処理の改善

Android 2.3 では、ジャイロスコープ センサー、回転ベクトルセンサー、直線加速度センサー、重力センサー、気圧センサーなど、いくつかの新しいセンサータイプの API サポートが追加されています。アプリケーションは、この新しいセンサーをデバイスで利用可能な他のセンサーと組み合わせて使用し、デバイスの 3 次元の動きや向きの変化を高精度かつ正確に追跡できます。たとえば、ゲームアプリはデバイス上のジャイロスコープと加速度計の測定値を使用して、傾斜、スピン、推力、スライスなどの複雑なユーザー操作や動きを認識できます。

ネイティブ オーディオ用のオープン API

プラットフォームは、Khronos OpenSL ES のソフトウェア実装を提供します。Khronos OpenSL ES は標準 API であり、アプリはネイティブ コードから強力なオーディオ コントロールとエフェクトにアクセスできます。アプリケーションはこの API を使用して、オーディオ デバイスを管理し、オーディオの入力、出力、処理をネイティブ コードから直接制御できます。

ネイティブ グラフィック管理

プラットフォームは、Khronos EGL ライブラリへのインターフェースを提供します。これにより、アプリはグラフィック コンテキストを管理し、ネイティブ コードから OpenGL ES テクスチャとサーフェスを作成して管理できます。

アクティビティのライフサイクル、ウィンドウ管理へのネイティブ アクセス

ネイティブ アプリは、ライフサイクル コールバックがネイティブ コード内に直接実装される、新しいタイプの Activity クラス NativeActivity を宣言できます。NativeActivity とその基盤となるネイティブ コードは、他のアクティビティと同様にシステムで実行されます。これらはアプリのシステム プロセスで実行され、アプリのメイン UI スレッドで実行されます。また、他のアクティビティと同じライフサイクル コールバックを受け取ります。

また、ウィンドウを管理するためのネイティブ API(ピクセル バッファをロック/ロック解除して直接描画する機能など)も公開されています。この API を介して、アプリはフレームワーク サーフェス オブジェクトに関連付けられたネイティブ ウィンドウ オブジェクトを取得し、ネイティブ コード内で直接操作できます。

アセット、ストレージへのネイティブ アクセス

アプリはネイティブ Asset Manager API にアクセスして、JNI を経由せずにネイティブ コードから直接アプリアセットを取得できるようになりました。アセットが圧縮されている場合、アプリケーションがアセットデータを読み取ると、プラットフォームはストリーミング解凍を行います。読み取り可能な圧縮 .apk アセットのサイズの上限がなくなりました。

さらに、アプリはネイティブの Storage Manager API にアクセスして、システムによってダウンロードおよび管理される OBB ファイルを直接操作できます。OBB のプラットフォーム サポートは Android 2.3 でも利用可能ですが、OBB ファイルの作成と管理を行うための開発ツールは 2011 年初頭まで利用できません。

堅牢なネイティブ開発環境

Android NDK(r5 以降)は、Android 2.3 プラットフォームが提供する充実したネイティブ環境を使用するアプリを開発するためのツール、ツールチェーン、ライブラリの完全なセットを提供します。NDK の詳細やダウンロード方法については、Android NDK のページをご覧ください。

新しいコミュニケーションの形

インターネット電話

デベロッパーは、SIP ベースのインターネット電話機能をアプリケーションに追加できるようになりました。Android 2.3 には、完全な SIP プロトコル スタックと統合された通話管理サービスが含まれており、セッション、トランスポート レベルの通信、録音や再生を直接管理することなく、アプリで音声通話の発信と着信を簡単に設定できます。

特定のデバイスでのプラットフォームの SIP 機能とインターネット通話機能のサポートは、メーカーおよび関連する携帯通信会社によって異なります。

近距離無線通信(NFC)

近距離無線通信(NFC)に対するプラットフォームのサポートにより、デベロッパーはまったく新しいクラスの Android 用アプリの作成を開始できます。デベロッパーは、近接ベースの情報とサービスをユーザー、組織、販売者、広告主に提供する新しいアプリケーションを作成できます。

NFC API を使用すると、ユーザーが NFC 対応デバイスにステッカーやスマートポスターなどのデバイスに埋め込まれた要素に「タッチ」すると、「検出された」NFC タグをアプリで読み取り、応答できます。目的のタグが収集されると、アプリケーションはそのタグに応答し、タグからメッセージを読み取り、メッセージを保存し、必要に応じてユーザーにプロンプトを表示できます。

Android 2.3.3 以降では、アプリはタグへの書き込みや、他の NFC デバイスとのピアツーピア接続の設定もできます。

NFC 通信は、デバイス ハードウェアのワイヤレス技術に依存しているため、特定のデバイスでのプラットフォームの NFC 機能のサポートはメーカーによって異なります。

リッチ マルチメディア

ミキシング可能なオーディオ エフェクト

新しいオーディオ エフェクト API を使用すると、オーディオ トラックとサウンドにイコライゼーション、バスブースト、ヘッドフォンの仮想化(サウンドステージの拡大)、リバーブを追加することで、リッチなオーディオ環境を簡単に作成できます。デベロッパーは、複数のオーディオ エフェクトをローカル トラックにミックスしたり、エフェクトを複数のトラックにグローバルに適用したりできます。

新しいメディア形式のサポート

プラットフォームでは、VP8 オープン動画圧縮形式と WebM オープン コンテナ形式の組み込みサポートが提供されるようになりました。また、プラットフォームは AAC エンコードと AMR 広帯域エンコード(ソフトウェア内)のサポートも追加しているため、アプリはナローバンドよりも高品質の音声をキャプチャできます。

複数のカメラへのアクセス

Camera API により、デベロッパーはデバイスで使用可能なカメラ(前面カメラを含む)にアクセスできるようになりました。アプリは、デバイス上のカメラの数と、そのタイプや特性についてプラットフォームにクエリし、必要なカメラを開くことができます。たとえば、ビデオチャット アプリでは低解像度の前面カメラにアクセスし、写真アプリでは高解像度の背面カメラを必要とする場合があります。

新しいプラットフォーム テクノロジー

メディア フレームワーク

  • 新しいメディア フレームワークは OpenCore に完全に取って代わり、以前のコーデック/コンテナのエンコードとデコードのサポートをすべて維持しています。
  • VP8 オープン動画圧縮形式と WebM オープン コンテナ形式の統合サポート
  • AAC エンコードと AMR ワイドバンド エンコードを追加

Linux カーネル

  • 2.6.35 にアップグレードしました

ネットワーク

  • SIP スタック(デバイス メーカーが設定可能)
  • 近距離無線通信(NFC)のサポート(デバイス メーカーが設定可能)
  • 更新された BlueZ スタック

Dalvik ランタイム

  • Dalvik VM:
    • 同時ガベージ コレクタ(ターゲットが 3 ミリ秒未満の一時停止)
    • JIT(コード生成)最適化をさらに追加
    • コード確認の改善
    • StrictMode のデバッグ(パフォーマンスとメモリの問題の特定に使用)
  • コアライブラリ:
    • I18N サポートの拡張(全世界での完全なエンコード、より多くの言語 / 地域)
    • フォーマッタと数値の書式設定の高速化。たとえば、浮動小数点数形式は 2.5 倍高速です。
    • HTTP レスポンスはデフォルトで gzip で圧縮されます。XML API と JSON API のレスポンス サイズが 60% 以上削減される場合があります。
    • 新しいコレクション API とユーティリティ API
    • ネットワーク API の改善
    • ファイルの読み取りと書き込みの制御の改善
    • 更新された JDBC
  • アップストリーム プロジェクトからの更新:
    • OpenSSL 1.0.0a
    • バウンシーキャッスル 1.45
    • ICU 4.4
    • zlib 1.2.5

デベロッパー向けの新しい API について詳しくは、Android 2.3 バージョン メモAPI 差分レポートをご覧ください。