Android 2.2 API

API レベル: 8

Android 2.2 は、ユーザー機能、デベロッパー機能、API の変更、バグ修正を含むマイナー プラットフォーム リリースです。デベロッパー機能と API の変更については、Framework API セクションをご覧ください。

デベロッパーは、Android 2.2 プラットフォームを Android SDK のダウンロード可能なコンポーネントとして利用できます。ダウンロード可能なプラットフォームには、Android ライブラリとシステム イメージのほか、エミュレータのスキンなど一連の機能が含まれています。Android 2.2 での開発またはテストを開始するには、Android SDK Manager を使用してプラットフォームを SDK にダウンロードします。

プラットフォームのハイライト

新しいユーザー機能とプラットフォームのハイライトの一覧については、Android 2.2 プラットフォームのハイライトのドキュメントをご覧ください。

API レベル

Android 2.2 プラットフォームでは、フレームワーク API の更新版が提供されています。Android 2.2 API には、システム自体に保存される整数識別子(8)が割り当てられます。この識別子(API レベル)により、システムはアプリをインストールする前に、アプリがシステムと互換性があるかどうかを正しく判断できます。

Android 2.2 で導入された API をアプリで使用するには、アプリのマニフェスト内の <uses-sdk> 要素の android:minSdkVersion 属性に適切な値(8)を設定する必要があります。

API レベルの使用方法について詳しくは、API レベルのドキュメントをご覧ください。

フレームワーク API の変更

以下のセクションでは、Android 2.2 プラットフォームで提供されるアプリケーション フレームワーク API に加えられた変更について説明します。

外部ストレージ メディアへのアプリのインストール

Android プラットフォームでは、デバイスの内部メモリへのインストールの代わりに、デバイスの外部ストレージ メディア(SD カードなど)へのインストールをアプリがリクエストできるようになりました。

アプリのデベロッパーは、マニフェスト ファイルの新しい <manifest> 属性( android:installLocation)を使用して、アプリの推奨インストール場所を指定できます。この属性は、"internalOnly""preferExternal""auto" の 3 つの値をサポートしています。インストール時に、システムは android:installLocation の値を確認し、可能であれば、優先される場所にアプリ .apk をインストールします。アプリが外部インストールをリクエストした場合、システムは外部メディアの暗号化された非公開パーティションにインストールします。アプリの .apk が外部にインストールされると、ユーザーはユーザー設定の [アプリの管理] で .apk の保存場所を変更し、必要に応じてデバイスの内部メモリに移動できます(またはその逆)。

デフォルトでは、外部インストールを明示的にリクエストするアプリを除き、すべてのアプリがデバイスの内部メモリにインストールされます。つまり、レガシー アプリケーションは android:installLocation 属性にアクセスできないため、システムは常に内部メモリにレガシー アプリケーションをインストールします。ただし、必要に応じて、以前のバージョンのプラットフォームには内部に、Android 2.2 以降のプラットフォームには外部にインストールされるように、レガシー アプリを構成してコンパイルすることは可能です。

デバイスの外部メディアへのインストールをリクエストすることは、すべてのアプリに適しているわけではありません。特に、外部メディアは取り外し可能であり、マウント解除/再マウントによってユーザー エクスペリエンスやシステム設定が中断される可能性があるためです。

アプリの優先インストール場所の設定について詳しくは、外部インストールをリクエストするべきアプリとリクエストすべきでないアプリの種類に関する説明など、アプリのインストール場所のドキュメントをご覧ください。

データのバックアップ

プラットフォームには、アプリがユーザーデータのバックアップと復元に使用できる一般的なバックアップ サービスが提供されるようになりました。これにより、ユーザーはデバイスを切り替えたり、アプリを再インストールしたりしてもデータを維持できます。バックアップ マネージャーは、クラウドのバックアップ ストレージ領域との間でアプリケーション データを転送する処理を処理します。バックアップ マネージャーは、任意のデータからファイルまで、あらゆる種類のデータを保存でき、バックアップと復元のオペレーションをアトミックに管理します。詳細については、データのバックアップをご覧ください。

グラフィック

メディア

  • android.media.AudioManager に、オーディオ フォーカス、トランスポート コントロール、オーディオ フォーカスの一時的な喪失、ダッキングの管理のための新しい API を追加しました。
  • 音声を SCO に転送するための新しいブロードキャスト インテント - 新しい状態を示すエクストラを含む ACTION_SCO_AUDIO_STATE_CHANGED
  • SoundPool に、サウンドの読み込みの完了を検出する新しい API を追加しました。
  • 自動一時停止と再開のための新しい API を SoundPool に追加しました。
  • MediaRecorder の新しい API で、チャンネル数、エンコード レート、サンプリング レート、サンプリング レートの音声設定を指定できます。
  • メディア データベースにファイルを追加して自動的にスキャンできるようにする新しい API。MediaScannerConnection.scanFileMediaScannerConnection.OnScanCompletedListener をご覧ください。

音声認識とサードパーティの認識エンジン

  • このプラットフォームには、利用可能な音声認識ツールとアプリがより豊かなやり取りを行えるようにする、新しい音声認識 API が用意されています。たとえば、これらの API は、音声認識を IME に深く統合するのに十分です。
  • また、サードパーティ デベロッパーがプラグイン認識エンジンを作成できるように、RecognitionService ベースクラスも用意されています。
  • コールバックを受信する新しい RecognitionListener インターフェース。
  • リクエスト元のアプリが、優先言語、最小長(ミリ秒単位)などの詳細を指定できるようにする新しい RecognizerIntent エクストラ。

カメラ、ビデオカメラ

  • プレビュー パイプラインの効率を改善するために、カメラ プレビュー API を変更しました。
  • カメラの新しい表示方向(縦向きで動作するようになりました)。
  • ズームレベルを管理するための android.hardware.Camera の新しい API。
  • デバイスのカメラ設定(焦点距離、露出、ズームレベル、視野角など)をクエリして設定するための新しい API android.hardware.Camera.Parameters
  • 動画と画像のサムネイル用の新しい thumbnail ユーティリティ。
  • 新しい CamcorderProfile クラスと CamcorderProfile クラスにより、アプリはデバイスのハードウェア カメラの機能を特定できます。
  • android.media.ExifInterface で GPS と焦点距離の取得をサポートしました。

デバイス ポリシー マネージャー

新しいデバイス ポリシー管理 API により、デベロッパーは、パスワードの最低強度やデータのワイプなど、デバイスのセキュリティ機能を制御できる「デバイス管理者」アプリを作成できるようになりました。ユーザーは、デバイスで有効にする管理者を選択できます。詳細については、android.app.admin クラスまたは DeviceAdminSample.java のサンプル アプリケーション コードをご覧ください。

UI フレームワーク

  • 新しい UI モード「カーモード」と「ナイトモード」と UiModeManager により、アプリは特定のユーザーモードに合わせてアプリ UI を調整できます。
  • 新しい ScaleGestureDetector。ビューが、指定された MotionEvents を使用して、複数のポインタ(マルチタッチ)が関与する変換ジェスチャーを検出して処理できるようにします。
  • MotionEvent オブジェクトでマルチタッチ イベントが報告される方法を改善しました。
  • レイアウト属性 fill_parent の名前が match_parent に変更されました。これは XML コードと Java コードの両方に影響します(ViewGroup.LayoutParams を参照)。なお、プラットフォームは、以前のアプリケーションでの fill_parent の使用を今後も尊重します。
  • 新しいレイアウト属性 tabStripEnabledtabStripRighttabStripLeft を使用すると、デベロッパーは TabWidget の下部ストリップをカスタマイズできます。
  • Activity での管理対象ダイアログのサポートを強化。

アカウントと同期

  • 新しいメソッド AddPeriodicSync() を使用すると、特定のアカウント、権限、エクストラとの定期的な同期を指定された頻度でスケジュールできます。

新しいマニフェスト要素と属性

  • アプリの優先インストール場所を指定するには(上記の外部ストレージ メディアへのアプリのインストールを参照):
    • <manifest> 要素の新しい android:installLocation 属性。アプリケーションで定義されたデフォルトのインストール場所を指定します。
  • ユーザーデータのバックアップを管理する場合(詳細については、上記のバックアップ マネージャーをご覧ください):
    • <application> 要素の新しい android:backupAgent 属性。バックアップ/復元オペレーションを処理するためにアプリが提供する BackupAgent サブクラスのコンポーネント名を指定します(存在する場合)。
    • <application> 要素の新しい android:restoreAnyVersion 属性。バックアップがデバイスに現在インストールされているバージョンよりも新しいバージョンのアプリのものである場合でも、アプリでバックアップ データセットの復元を試みる準備が整っているかどうかを示すブール値。
  • プラットフォームの JIT コンパイラを管理するには:
    • <application> 要素の新しい android:vmSafeMode 属性。アプリケーションの実行時に JIT コンパイラの最適化を無効にするかどうかを指定するブール値。

権限

  • android.permission.BIND_DEVICE_ADMIN - デバイス管理ブロードキャスト レシーバは、システムのみが操作できるように、この権限を要求する必要があります。
  • android.permission.KILL_BACKGROUND_PROCESSES - アプリケーションが killBackgroundProcesses(String) を呼び出すことを許可します。
  • android.permission.BIND_WALLPAPER - WallpaperService は、システムのみが操作できるように、この権限を要求する必要があります。
  • android.permission.SET_TIME - アプリがシステム時刻を設定することを許可します。

API の差分レポート

Android 2.2(API レベル 8)のすべての API の変更について詳しくは、API の差分レポートをご覧ください。