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 會指派一個儲存在系統本身中的整數 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 以上版本平台。

請注意,要求安裝到裝置外部媒體的功能不適用於所有應用程式,尤其是因為外部媒體可能會移除,且卸載/重新掛接可能會幹擾使用者體驗和系統設定。

如要進一步瞭解如何為應用程式設定偏好的安裝位置,包括哪些類型的應用程式應和不應要求外部安裝的討論,請參閱應用程式安裝位置文件。

資料備份

該平台現在提供一般化備份服務,讓應用程式可用於備份及還原使用者資料,以確保使用者在切換裝置或重新安裝應用程式時,仍能保留自己的資料。備份管理員會處理將應用程式資料來回傳輸至雲端備份儲存空間區域的工作。備份管理員可儲存任何類型的資料,無論是任意類型資料或檔案,都能以不可分割的形式管理備份與還原作業。詳情請參閱資料備份

顯示卡

媒體

語音辨識和第三方辨識引擎

  • 這個平台提供新的語音辨識 API,可讓應用程式與可用的語音辨識器進行更豐富的互動。舉例來說,API 就足以將語音辨識功能深度整合到輸入法編輯器。
  • 這個平台也提供 RecognitionService 基礎類別,可讓第三方開發人員建立外掛程式辨識引擎。
  • 新增 RecognitionListener 介面,可用於接收回呼。
  • 新增 RecognizerIntent 額外項目,可讓要求者應用程式將詳細資料指定為偏好語言、長度下限 (以毫秒為單位) 等等。

攝影機和攝錄影機

裝置政策管理員

開發人員可透過新的 Device Policy Management API,編寫可控制裝置安全性功能的「裝置管理員」應用程式,例如密碼強度下限、資料抹除等。使用者可以選取裝置上已啟用的管理員。詳情請參閱 android.app.admin 類別或 DeviceAdminSample.java 中的應用程式程式碼範例。

UI 架構

  • 新的 UI 模式「車用模式」和「夜間模式」,UiModeManager可讓應用程式針對特定使用者模式調整應用程式 UI。
  • 新增 ScaleGestureDetector,可讓 View 使用提供的 MotionEvents 偵測及處理涉及多個指標 (多點觸控) 的轉換手勢。
  • 改善在 MotionEvent 物件中回報多點觸控事件的方式。
  • 版面配置屬性 fill_parent 已重新命名為 match_parent。這會影響 XML 和 Java 程式碼 (請參閱 ViewGroup.LayoutParams)。請注意,平台會繼續遵循 fill_parent 在舊版應用程式中的使用情況。
  • 新的版面配置屬性 tabStripEnabledtabStripRighttabStripLeft 可讓開發人員自訂 TabWidgets 的底部列。
  • 更有效地支援「活動」中的代管對話方塊。

帳戶與同步處理

  • 新方法 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 差異報告