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 會指派一個整數 ID (8),並儲存在系統中。這個 ID 稱為「API 級別」,可讓系統在安裝應用程式前,正確判斷應用程式是否與系統相容。
如要在應用程式中使用 Android 2.2 中推出的 API,您必須在應用程式資訊清單中 <uses-sdk>
元素的 android:minSdkVersion
屬性中,設定適當的值「8」。
如要進一步瞭解如何使用 API 級別,請參閱「API 級別」說明文件。
Framework API 異動
以下各節將說明 Android 2.2 平台提供的應用程式架構 API 所做的變更。
在外部儲存媒體上安裝應用程式
Android 平台現在允許應用程式要求安裝至裝置的外部儲存媒體 (例如 SD 卡),而非安裝至裝置的內部記憶體。
應用程式開發人員可以透過資訊清單檔案
android:installLocation
中的新 <manifest>
屬性,表達應用程式偏好的安裝位置。這個屬性支援三個值:"internalOnly"
、"preferExternal"
和 "auto"
。在安裝期間,系統會檢查 android:installLocation
的值,並盡可能根據偏好位置安裝應用程式 .apk
。如果應用程式要求外部安裝,系統會將應用程式安裝到外部媒體中的私人加密分割區。應用程式 .apk 安裝在外部後,系統會允許使用者透過「管理應用程式」設定,變更 .apk 的儲存位置,並視需要將其移至裝置的內部記憶體 (反之亦然)。
根據預設,系統會將所有應用程式安裝在裝置的內部記憶體中,但明確要求外部安裝的應用程式除外。這表示系統一律會將舊版應用程式安裝在內部記憶體中,因為這些應用程式無法存取 android:installLocation
屬性。不過,您可以設定及編譯舊版應用程式,讓應用程式在舊版平台上內部安裝,並在 Android 2.2 以上版本的平台上外部安裝 (視需要而定)。
請注意,要求在裝置的外部媒體上安裝應用程式並不適合所有應用程式,特別是因為外部媒體可能可移除,而卸載/重新掛載可能會影響使用者體驗和系統設定。
如要進一步瞭解如何為應用程式設定偏好的安裝位置,包括討論哪些類型的應用程式應和不應要求外部安裝,請參閱「應用程式安裝位置」說明文件。
資料備份
平台現在提供通用備份服務,應用程式可使用這項服務備份及還原使用者資料,確保使用者在切換裝置或重新安裝應用程式時,能保留資料。備份管理工具會處理應用程式資料在雲端備份儲存空間中傳輸的作業。備份管理工具可儲存任何類型的資料,從任意資料到檔案,並以原子方式管理備份和還原作業。詳情請參閱「資料備份」。
圖形
android.opengl.GLES20
中的新 OpenGL ES 2.0 API。- 新增
ETC1
、ETC1Util
和ETC1Util.ETC1Texture
類別,以及可用於紋理壓縮的 ETC1 公用程式方法。 - 新的
ImageFormat
類別。 - 新增
YUV image format API
,可啟用從 YUV 到 JPEG 的壓縮功能,並操控 YUV 資料。
媒體
android.media.AudioManager
中的新 API,可用於管理音訊焦點、傳輸控制、音訊焦點暫時性遺失、抑制。- 用於將音訊轉送至 SCO 的新廣播意圖 —
ACTION_SCO_AUDIO_STATE_CHANGED
,其中包含用於表示新狀態的額外資訊。 SoundPool
中的新 API,可偵測音訊載入完成。SoundPool
中的新 API,可用於自動暫停和恢復。MediaRecorder
中的新 API,可指定音訊設定的頻道數、編碼和取樣率。- 新增 API,可將檔案新增至媒體資料庫,以便自動掃描。請參閱
MediaScannerConnection.scanFile
和MediaScannerConnection.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
可讓 View 使用提供的 MotionEvents 偵測及處理涉及多個指標 (多點觸控) 的轉換手勢。 - 改善在
MotionEvent
物件中回報多點觸控事件的方式。 - 版面配置屬性
fill_parent
已重新命名為match_parent
。這會影響 XML 和 Java 程式碼 (請參閱ViewGroup.LayoutParams
)。請注意,平台會繼續支援舊版應用程式中的fill_parent
用法。 - 新的版面配置屬性
tabStripEnabled
、tabStripRight
和tabStripLeft
可讓開發人員自訂分頁小工具的底部條紋。 - 進一步支援活動中的受管理對話方塊。
帳戶和同步
- 新的
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 差異比較表。