API レベル: 9
デベロッパー向けに、Android SDK のダウンロード可能なコンポーネントとして Android 2.3(GINGERBREAD
)プラットフォームが用意されています。ダウンロード可能なプラットフォームには、Android ライブラリとシステム イメージ、エミュレータ スキンのセットなどが含まれています。Android 2.3 向けの開発やテストを開始するには、Android SDK Manager を使用してプラットフォームを SDK にダウンロードします。
API の概要
以下のセクションでは、フレームワーク API の以前のバージョンからの変更点や新機能など、2.3 のデベロッパー向けの新機能の技術的な概要を説明します。
SIP ベースの VoIP
プラットフォームに SIP プロトコル スタックとフレームワーク API が追加され、デベロッパーはインターネット電話アプリケーションを構築できるようになりました。この API を使用すると、アプリはセッション、トランスポート レベルの通信、音声を管理することなく、音声通話機能を提供できます。これらの機能は、プラットフォームの SIP API とサービスによって透過的に処理されます。
SIP API は android.net.sip
パッケージで提供されています。主なクラスは SipManager
です。アプリケーションは、SIP プロファイルの設定と管理、音声通話の開始、音声通話の受信に使用します。音声通話が確立されると、アプリは通話のミュート、スピーカーモードの有効化、DTMF トーンの送信などを行うことができます。また、アプリケーションで SipManager
を使用して汎用 SIP 接続を作成することもできます。
プラットフォームの基盤となる SIP スタックとサービスは、メーカーおよび関連する携帯通信会社の裁量により、デバイスで利用できます。このため、アプリはユーザーに通話機能を公開する前に、isApiSupported()
メソッドを使用して SIP サポートが使用可能かどうかを確認する必要があります。
アプリで SIP API を使用するには、マニフェスト ファイルで <uses-permission
android:name="android.permission.INTERNET">
と <uses-permission
android:name="android.permission.USE_SIP">
を宣言して、ユーザーに権限をリクエストする必要があります。
さらに、デベロッパーは、Google Play でフィルタリングをリクエストして、プラットフォームの SIP スタックとサービスを含まないデバイスを使用するユーザーからアプリを検出できないようにすることもできます。フィルタリングをリクエストするには、<uses-feature
android:name="android.software.sip"
android:required="true">
と <uses-feature
android:name="android.software.sip.voip">
をアプリ マニフェストに追加します。
詳しくは、SIP デベロッパー ガイドをご覧ください。
近距離無線通信(NFC)
Android 2.3 には NFC スタックとフレームワーク API が含まれています。これによりデベロッパーは、ユーザーが NFC 対応デバイスに触れたときに検出される NDEF タグを読み取り、ステッカー、スマートポスター、その他のデバイスに埋め込まれた要素にタグ付けできます。
プラットフォームは、基になる NFC サービスを提供します。これは、デバイス ハードウェアと連携して、範囲に到達したときにタグを検出します。タグが検出されると、プラットフォームはインテントをブロードキャストし、タグの NDEF メッセージをエクストラとしてインテントに追加して、アプリに通知します。アプリはインテント フィルタを作成して、ターゲットとなるタグやメッセージを認識して処理できます。たとえば、インテントによってタグを受け取ったアプリは、NDEF メッセージの抽出、保存、ユーザーへのアラートなどの処理を行います。
NFC API は android.nfc
パッケージで利用できます。主なクラスは次のとおりです。
NfcAdapter
: デバイスの NFC ハードウェアを表します。NdefMessage
。NDEF データ メッセージを表します。これは、データを伝送する「レコード」がデバイスとタグの間で転送される標準形式です。アプリはACTION_TAG_DISCOVERED
インテントからこれらのメッセージを受信できます。NdefRecord
はNdefMessage
で配信されます。これは共有されるデータの種類を記述し、データ自体を保持します。
NFC 通信は、デバイス ハードウェアのワイヤレス技術に依存しているため、特定のデバイスでのプラットフォームの NFC 機能のサポートはメーカーによって異なります。現在のデバイスで NFC がサポートされているかどうかを確認するには、アプリは isEnabled()
を呼び出して NfcAdapter
をクエリします。ただし、基盤となるハードウェアのサポートに関係なく、NFC API は常に存在します。
アプリが NFC API を使用するには、マニフェスト ファイルで <uses-permission
android:name="android.permission.NFC">
を宣言して、ユーザーに権限をリクエストする必要があります。
さらにデベロッパーは、NFC をサポートしていないデバイスのユーザーからアプリを見つけられないように、Google Play でフィルタリングをリクエストできます。フィルタリングをリクエストするには、アプリのマニフェストに <uses-feature android:name="android.hardware.nfc"
android:required="true">
を追加します。
NFC API を使用するサンプルアプリについては、NFCDemo をご覧ください。
ジャイロスコープとその他のセンサー
Android 2.3 では、いくつかの新しいセンサー読み取りタイプ(ジャイロスコープ、回転ベクトル、直線加速度、重力、気圧計)に対するプラットフォームと API のサポートが追加されています。デベロッパーは新しいセンサー測定値を使用して、デバイスの位置や動作の正確な変化に迅速かつスムーズに対応するアプリを作成できます。Sensor API は、アプリ フレームワークとネイティブ コードのどちらで実行されているかにかかわらず、ジャイロスコープやその他のセンサーの変更を関連アプリに報告します。
デバイスで使用可能なハードウェア センサーのセットは、デバイス メーカーの裁量により異なります。
デベロッパーは、ジャイロスコープ センサーを搭載していないデバイスを使用するユーザーからアプリを見つけられないように、Google Play のフィルタリングをリクエストできます。そのためには、アプリ マニフェストに <uses-feature
android:name="android.hardware.sensor.gyroscope"
android:required="true">
を追加します。
API の詳細については、Sensor
をご覧ください。
複数のカメラのサポート
アプリは、写真または動画のキャプチャに、デバイスで利用できる任意のカメラを利用できるようになりました。Camera
を使用すると、アプリは利用可能なカメラの数と各カメラの固有の特性をクエリできます。
- 新しい
Camera.CameraInfo
クラスは、カメラの位置特性(向き、前面または背面)を格納します。 Camera
クラスの新しいgetNumberOfCameras()
メソッドとgetCameraInfo()
メソッドを使用すると、アプリは利用可能なカメラをクエリして、必要なカメラを開くことができます。- 新しい
get()
メソッドを使用すると、アプリで特定のカメラのCamcorderProfile
を取得できます。 - 新しい
getJpegEncodingQualityParameter()
を使用すると、アプリは特定のカメラの静止画撮影品質レベルを取得できます。
前面カメラにアクセスするためのサンプルコードについては、ApiDemos サンプル アプリケーションの CameraPreview.java をご覧ください。
Camera API はさらに以下も追加します。
- カメラの新しいパラメータ(焦点距離、フォーカス モード、プレビューの fps の最大値と最小値など)。カメラ パラメータを取得するための新しい
getFocusDistances()
、getPreviewFpsRange()
、getSupportedPreviewFpsRange()
と、プレビュー フレームレートを設定するためのsetPreviewFpsRange()
が追加されました。
ミキシング可能なオーディオ エフェクト
プラットフォームのメディア フレームワークでは、バスブースト、ヘッドフォンの仮想化、イコライジング、リバーブなど、トラックごとの新しいオーディオ エフェクトやグローバル オーディオ エフェクトのサポートが追加されています。
- 新しい
android.media.audiofx
パッケージには、オーディオ エフェクトにアクセスするための API が用意されています。 - 新しい
AudioEffect
は、Android オーディオ フレームワークが提供するオーディオ エフェクトをコントロールするための基本クラスです。 - アプリがオーディオ エフェクトのセットを
AudioTrack
またはMediaPlayer
のインスタンスに関連付けることを可能にする、新しいオーディオ セッション ID。 - 特定のセッション ID で
AudioTrack
を作成できる新しいAudioTrack
クラス コンストラクタ。attachAuxEffect()
、getAudioSessionId()
、setAuxEffectSendLevel()
の新しいメソッド。 attachAuxEffect()
、getAudioSessionId()
、setAudioSessionId(int)
、setAuxEffectSendLevel()
の新しいメソッドとサポート型。
音声効果のサンプルコードについては、ApiDemos サンプル アプリケーションの AudioFxDemo.java をご覧ください。
メディア フレームワークでは、以下も追加されています。
- JPEG ファイルの EXIF メタデータで高度タグを新たにサポート。EXIF 高度タグの値を取得する、新しい
getAltitude()
メソッドが追加されました。 - 新しい
setOrientationHint()
メソッドを使用すると、アプリは動画キャプチャ中に画面の向きをMediaRecorder
に通知できます。
ダウンロード マネージャー
プラットフォームには、長時間実行される HTTP ダウンロードを処理する新しい DownloadManager
システム サービスが含まれています。アプリは、URI を特定の宛先ファイルにダウンロードするようリクエストできます。DownloadManager
はバックグラウンドでダウンロードを行い、HTTP インタラクションを処理し、エラー後や接続の変更とシステムの再起動後にダウンロードを再試行します。
- アプリは、
getSystemService(String)
を呼び出してDOWNLOAD_SERVICE
を渡すことで、DownloadManager
クラスのインスタンスを取得できます。この API を介してダウンロードをリクエストするアプリは、ACTION_NOTIFICATION_CLICKED
のブロードキャスト レシーバを登録して、ユーザーが通知またはダウンロード UI で実行中のダウンロードをクリックしたときに適切に処理する必要があります。 DownloadManager.Request
クラスを使用すると、アプリは新しいダウンロードをリクエストするために必要なすべての情報(リクエスト URI、ダウンロード先など)を提供できます。必須パラメータはリクエスト URI のみです。デフォルトのダウンロード先は共有ボリュームです。システムで使用するスペースを再利用する必要がある場合に、システムはファイルを削除できます。ダウンロードの永続ストレージの場合は、外部ストレージのダウンロード先を指定します(setDestinationUri(Uri)
を参照)。DownloadManager.Query
クラスには、アプリがアクティブなダウンロードをクエリおよびフィルタするためのメソッドが用意されています。
厳格モード
デベロッパーがアプリケーションのパフォーマンスをモニタリングして改善できるように、プラットフォームには StrictMode
という新しいシステム機能が用意されています。StrictMode がアプリに実装すると、アプリのメインスレッドで行われるアクティビティ(UI オペレーションを受け取って、アニメーションも行っているアクティビティ)など、アプリのパフォーマンスを低下させる可能性がある誤ったディスク アクティビティやネットワーク アクティビティを検出してデベロッパーに通知します。デベロッパーは、StrictMode で発生したネットワークとディスクの使用状況に関する問題を評価し、必要に応じて修正できます。これにより、メインスレッドの応答性が向上し、ANR ダイアログがユーザーに表示されなくなります。
StrictMode
はコアクラスであり、システムおよび VM とのメインの統合ポイントです。このクラスには、インスタンスに適用されるスレッドと VM ポリシーを管理するための便利なメソッドが用意されています。StrictMode.ThreadPolicy
とStrictMode.VmPolicy
は、スレッドと VM インスタンスに対して定義して適用するポリシーを保持します。
StrictMode を使用してアプリを最適化する方法について詳しくは、android.os.StrictMode
のクラス ドキュメントとサンプルコードをご覧ください。
UI フレームワーク
- オーバースクロールのサポート
- ビューとウィジェットでオーバースクロールを新たにサポートしました。View では、アプリは特定のビューのオーバースクロールの有効化/無効化、オーバースコープ モードの設定、オーバースクロール距離の制御、オーバースクロールの結果の処理を行うことができます。
- ウィジェットでは、アプリはアニメーション、スプリングバック、オーバースクロール距離などのオーバースクロール特性を制御できます。詳細については、
android.view.View
とandroid.widget.OverScroller
をご覧ください。 ViewConfiguration
には、メソッドgetScaledOverflingDistance()
とgetScaledOverscrollDistance()
も用意されています。- オーバースクロールの動作を制御するために、
<ListView>
要素の新しいoverScrollMode
属性、overScrollFooter
属性、overScrollHeader
属性を追加しました。
- タップ フィルタリングのサポート
- タップ フィルタリングが新たにサポートされました。これにより、アプリは機密性の高い機能へのアクセスを提供する View のセキュリティを向上させることができます。たとえば、タップ フィルタリングは、権限リクエストの付与、購入、広告のクリックなどのユーザー アクションのセキュリティを確保するのに適切です。詳しくは、View クラスに関するドキュメントをご覧ください。
- ビュー要素の新しい
filterTouchesWhenObscured
属性を追加しました。この属性は、ビューのウィンドウが別の可視ウィンドウで覆われているときにタップをフィルタリングするかどうかを宣言します。"true"
に設定すると、トースト、ダイアログ、またはその他のウィンドウがビューのウィンドウの上に表示されるたびに、ビューはタップを受け取りません。詳細については、セキュリティに関するドキュメントを表示するをご覧ください。
タッチ フィルタリングのサンプルコードについては、ApiDemos サンプル アプリケーションの SecureView.java をご覧ください。
- イベント管理の改善
- 入力イベントの新しい基本クラス、
InputEvent
。このクラスには、イベントが発生した InputDevice を照会するなどして、アプリがイベントの意味を判定できるようにするメソッドが用意されています。KeyEvent
とMotionEvent
はInputEvent
のサブクラスです。 - 入力デバイスの新しい基本クラス
InputDevice
。このクラスには、特定の入力デバイスの機能に関する情報が保存され、入力デバイスからのイベントの解釈方法をアプリが決定できるようにするメソッドを提供します。
- 入力イベントの新しい基本クラス、
- モーション イベントの改善
MotionEvent
API は「ポインタ ID」情報を含むように拡張されています。これにより、アプリは、上下に移動する個々の指を追跡できます。このクラスにより、アプリがモーション イベントを効率的に処理できるようにするさまざまなメソッドが追加されます。- 入力システムに、新しいポインタ ID 情報を使用してモーション イベントを生成するロジックが追加され、新しいポインタがダウンしたときに識別子が合成されるようになりました。システムは、モーション イベント中に複数のポインタ ID を個別にトラッキングし、最後のポインタセットと次のポインタセット間の距離で評価することで、ポインタの適切な連続性を確保します。
- テキスト選択コントロール
- 新しい
setComposingRegion
メソッドを使用すると、現在のスタイルを維持しながら、アプリでテキスト領域を合成テキストとしてマークできます。getSelectedText
メソッドは、選択されたテキストをアプリに返します。メソッドはBaseInputConnection
、InputConnection
、InputConnectionWrapper
で使用できます。 <TextView>
の新しいtextSelectHandle
属性、textSelectHandleLeft
属性、textSelectHandleRight
属性、textSelectHandleWindowStyle
属性。テキスト選択アンカーと、それを含むウィンドウのスタイルを表示するために使用するドローアブルを参照するために使用されます。
- 新しい
- アクティビティ管理
ActivityInfo
に、アクティビティの向きを管理するための新しい定数(SCREEN_ORIENTATION_FULL_SENSOR
、SCREEN_ORIENTATION_REVERSE_LANDSCAPE
、SCREEN_ORIENTATION_REVERSE_PORTRAIT
、SCREEN_ORIENTATION_SENSOR_LANDSCAPE
、SCREEN_ORIENTATION_SENSOR_PORTRAIT
)が追加されました。ActivityManager.RunningAppProcessInfo
のimportance
フィールドの新しい定数IMPORTANCE_PERCEPTIBLE
。この値は、ユーザーが実際に認識できると考えられるものが、特定のプロセスで実行されていることを示します。例としては、バックグラウンド ミュージックの再生を実行するアプリが挙げられます。- アクティビティを永続的としてマークする Activity.setPersistent(boolean) メソッドのサポートが終了し、実装は NoOps になりました。
- 通知のテキストとアイコンのスタイル
- 残りの OpenGL ES 2.0 メソッド
glDrawElements()
とglVertexAttribPointer()
をandroid.opengl.GLES20
クラスに追加します。 YV12
ピクセル形式(平面 4:2:0 YCrCb 形式)のサポートが追加されました。- アラームの設定や処理のための新しい
AlarmClock
プロバイダ クラス。プロバイダには、アラーム クロック アプリで新しいアラームを設定するためのアクティビティの開始に使用できるACTION_SET_ALARM
インテントのアクションとエクストラが含まれています。SET_ALARM
インテントを受信するアプリは、SET_ALARM 権限を必要とするアクティビティを作成する必要があります。新しいアラームを作成するアプリでは、Context.startActivity()
を使用する必要があります。これにより、ユーザーは使用するアラームアプリを選択できるようになります。 MediaStore
は、新しいインテントのアクションPLAY_FROM_SEARCH
をサポートしています。これにより、アプリは音楽メディアを検索し、可能であればその結果からコンテンツを自動的に再生できます。たとえば、音楽を聴くための音声認識コマンドの結果として、アプリでこのインテントを起動できます。- また、
MediaStore
は新しいMEDIA_IGNORE_FILENAME
フラグを追加します。このフラグは、含まれるディレクトリとそのサブディレクトリ内のメディアを無視するようにメディア スキャナに指示します。デベロッパーはこれを使用して、ギャラリーにグラフィックが表示されないようにしたり、アプリのサウンドや音楽が音楽アプリに表示されないようにしたりできます。 Settings
プロバイダは、新しいアクティビティ アクションAPPLICATION_DETAILS_SETTINGS
とMANAGE_ALL_APPLICATIONS_SETTINGS
を追加します。これにより、アプリは特定のアプリの詳細画面や [アプリの管理] 画面を表示できます。ContactsContract
プロバイダは、連絡先の SIP(インターネット電話)アドレスを保存するために、ContactsContract.CommonDataKinds.SipAddress
データの種類を追加します。LocationManager
は、アプリを識別するシステム管理クラスWorkSource
に従って、wake lock または Wi-Fi ロックの原因となったアプリ リクエストを追跡するようになりました。LocationManager
は定期的な更新をリクエストしているすべてのクライアントを追跡し、最小更新時間を設定するときにWorkSource
パラメータとしてプロバイダに伝えます。Network Location Provider はWorkSource
を使用して、アプリによって開始された wake lock と Wi-Fi ロックを追跡し、[アプリの管理] で報告されるアプリのバッテリー使用量に追加します。LocationManager
は、指定された基準(下記参照)に基づいて定期的または 1 回限りの位置情報の更新をアクティビティに登録できるようにする、いくつかの新しいメソッドを追加します。- 新しい
Criteria
クラスを使用すると、アプリで位置情報プロバイダの選択基準のセットを指定できます。たとえば、プロバイダは、精度、電力使用量、高度、速度、方角を報告する機能、金銭的コストに応じて順序付けされる場合があります。 - Android 2.3 では、OBB(Opaque Binary Blob)ファイルをサポートする新しい
StorageManager
が追加されています。OBB のプラットフォーム サポートは Android 2.3 でも利用可能ですが、OBB ファイルの作成と管理を行うための開発ツールは 2011 年初頭まで利用できません。 - Android 2.3 プラットフォームでは、SD カードを含まないデバイスの公式サポートが追加されています(ただし、物理的な SD カードが利用できない場合は、仮想 SD カード パーティションが提供されます)。便利なメソッドである
isExternalStorageRemovable()
を使用すると、アプリは物理 SD カードが存在するかどうかを判断できます。 - ハードウェア機能とソフトウェア機能を宣言するための新しい定数。以下の新機能の定数のリストをご覧ください。
PackageInfo
は、パッケージのインストール時刻と最終更新時刻を格納する新しいfirstInstallTime
フィールドとlastUpdateTime
フィールドを追加します。- 特定のコンテンツ プロバイダ クラスに関する既知の情報をすべて取得するための新しい
getProviderInfo()
メソッド。 TelephonyManager
は、CDMA EVDO Rev B ネットワーク タイプを指定するための定数NETWORK_TYPE_EVDO_B
を追加します。- 新しい
getPsc()
メソッドは、UMTS ネットワーク上のサービング セルのプライマリ スクランブリング コードを返します。 NativeActivity
は新しいタイプの Activity クラスで、ライフサイクル コールバックがネイティブ コード内に直接実装されています。NativeActivity
とその基盤となるネイティブ コードは、他のアクティビティと同様にシステム内で実行されます。具体的には、Android アプリのシステム プロセスで実行され、アプリのメイン UI スレッドで実行されます。また、他のアクティビティと同じライフサイクル コールバックを受け取ります。- 新しい
InputQueue
クラスとコールバック インターフェースを使用すると、ネイティブ コードでイベントのキューイングを管理できます。 - 新しい
SurfaceHolder.Callback2
インターフェースを使用すると、ネイティブ コードでSurfaceHolder
を管理できます。 Window
の新しいtakeInputQueue
メソッドとtakeSurface()
メソッドを使用すると、ネイティブ コードでイベントとサーフェスを管理できます。dalvik.system
は、以前にサポートが終了したいくつかのクラスを削除します。- Dalvik コアライブラリ:
- 新しいコレクション:
ArrayDeque
、NavigableMap
、ConcurrentSkipListMap
、LinkedBlockingDeque
- 新しい
Arrays
ユーティリティ:binarySearch()
、copyOf()
、copyOfRange()
など。 HttpURLConnection
の場合はCookieManager
。- より詳細なネットワーク API:
InterfaceAddress
、NetworkInterface
、IDN
File
の読み取り / 書き込みコントロールString.isEmpty()
Normalizer
、Normalizer.Form
javax.net.ssl
サーバー ソケットを改善しました。
- 新しいコレクション:
- アプリが特大画面のフォーム ファクタをサポートしているかどうかを示す、
<supports-screens>
要素の新しいxlargeScreens
属性。詳しくは、複数画面のサポートをご覧ください。 <activity>
要素のandroid:screenOrientation
属性の新しい値:"reverseLandscape"
- アクティビティは画面を横向きにして、通常の横向きとは反対方向に画面に表示します。"reversePortrait"
- アクティビティは画面を縦向きにして通常の縦向きとは反対方向に回転させます。"sensorLandscape"
- アクティビティは画面を横向きにしますが、センサーを使用して画面の向きを変更できます。"sensorPortrait"
- アクティビティは画面を縦向きにしますが、センサーを使用して画面の向きを変更できます。"fullSensor"
- 向きは物理的な方位センサーによって決定されます。ユーザーがデバイスを動かした方法に基づいて、ディスプレイが回転します。これにより、デバイスの通常の動作に関係なく、可能な 4 つの回転のいずれかが可能になります(たとえば、一部のデバイスは通常は 180 度回転しません)。
com.android.permission.SET_ALARM
- ユーザーにアラームを設定するインテントをブロードキャストすることをアプリに許可します。SET_ALARM
インテントのアクションを処理するアクティビティには、この権限が必要です。android.permission.USE_SIP
-SIP API
を使用したインターネット通話の発着信をアプリケーションに許可します。android.permission.NFC
-NFC API
を使用した NFC タグの読み取りをアプリケーションに許可します。android.hardware.audio.low_latency
- アプリはデバイスで低レイテンシのオーディオ パイプラインを使用します。音声の入出力の遅延やラグの影響を受けやすくなります。android.hardware.camera.front
- アプリはデバイスの前面カメラを使用します。android.hardware.nfc
- アプリはデバイスの NFC 無線機能を使用します。android.hardware.sensor.barometer
- アプリはデバイスの気圧計を使用します。android.hardware.sensor.gyroscope
- アプリはデバイスのジャイロスコープ センサーを使用します。android.software.sip
- アプリケーションはデバイス上で SIP API を使用します。android.software.sip.voip
- アプリケーションはデバイス上で SIP ベースの VoIP サービスを使用します。android.hardware.touchscreen.multitouch.jazzhand
- アプリはデバイス画面で高度なマルチポイント マルチタッチ機能を使用し、5 つ以上のポイントを完全に独立してトラッキングします。
特大画面
プラットフォームは、タブレット デバイスなどに搭載されているような特大画面サイズをサポートするようになりました。デベロッパーは、マニフェスト ファイルに <supports
screens ... android:xlargeScreens="true">
要素を追加することで、アプリが特大画面サイズをサポートするように設計されていることを示すことができます。アプリでは、新しいリソース修飾子 xlarge
を使用して、特大画面に固有のリソースにタグを付けることができます。特大などの画面サイズをサポートする方法については、複数画面のサポートをご覧ください。
グラフィック
コンテンツ プロバイダ
位置情報
ストレージ
パッケージの管理
テレフォニー
アクティビティのライフサイクル、ウィンドウへのネイティブ アクセス
Android 2.3 では、ネイティブ コードを使用するアプリ向けに幅広い API が公開されています。このようなアプリケーションに関連するフレームワーク クラスには、次のようなものがあります。
ネイティブ コードの操作または NDK のダウンロードの詳細については、Android NDK のページをご覧ください。
Dalvik ランタイム
新しいマニフェスト要素と属性
新しい権限
新機能の定数
プラットフォームには、デベロッパーがアプリで必要であるとアプリ マニフェストで宣言できるいくつかの新しいハードウェア機能が追加されています。これにより、デベロッパーは、Google Play で公開されるアプリのフィルタリング方法を管理できます。
機能を宣言してフィルタリングに使用する方法の詳細については、<uses-feature>
のドキュメントをご覧ください。
API の差異レポート
Android 2.3(API レベル 9)におけるすべての API の変更点について詳しくは、API 差分レポートをご覧ください。
API レベル
Android 2.3 プラットフォームでは、最新バージョンのフレームワーク API が提供されています。Android 2.3 API には、システム自体に格納されている整数の識別子(9)が割り当てられます。「API レベル」と呼ばれるこの識別子により、アプリをインストールする前に、アプリがシステムに対応しているかどうかを正しく判断できます。
Android 2.3 で導入された API をアプリで使用するには、Android 2.3 SDK プラットフォームに用意された Android ライブラリに対してアプリをコンパイルする必要があります。必要に応じて、アプリのマニフェストの <uses-sdk>
要素に android:minSdkVersion="9"
属性を追加する必要もあるかもしれません。アプリが Android 2.3 以降でのみ動作するように設計されている場合、この属性を宣言すると、以前のバージョンのプラットフォームにアプリをインストールできなくなります。
詳しくは、API レベルとはをご覧ください。