ジンジャーブレッド

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 のソフトウェア実装を提供します。これは標準 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
    • BouncyCastle 1.45
    • ICU 4.4
    • zlib 1.2.5

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