Android 2.2 API

API レベル: 8

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

デベロッパーの方は、Android SDK のダウンロード可能なコンポーネントとして Android 2.2 プラットフォームをご利用いただけます。ダウンロード可能なプラットフォームには、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 カードなど)へのインストールをリクエストできるようになりました。

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

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

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

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

データのバックアップ

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

グラフィック

Media

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

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

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

カメラとカムコーダー

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

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

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

UI フレームワーク

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

アカウントと同期

  • 新しいメソッド 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 差分レポートをご覧ください。