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 儲存在系統本身中。這個 ID 稱為「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"
。在安裝時,系統會檢查 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 足以深度整合至輸入法編輯器。
- 這個平台也提供
RecognitionService
基礎類別,讓第三方開發人員建立外掛程式辨識引擎。 - 新增用於接收回呼的
RecognitionListener
介面。 - 新增
RecognizerIntent
額外項目,可讓要求者應用程式指定詳細資料為偏好語言、長度下限 (以毫秒為單位) 等。
攝影機和攝錄影機
- 相機預覽 API 的變更,以提升預覽管道的效能。
- 新的相機顯示方向 (現已可在直向模式中運作)。
android.hardware.Camera
中的新 API 可用於管理縮放等級。- 新增 API
android.hardware.Camera.Parameters
,用於查詢及設定裝置相機設定,例如焦距、曝光度、縮放等級、視角等等。 - 新的
thumbnail
公用程式和圖片縮圖。 - 新的
CamcorderProfile
和CamcorderProfile
類別可讓應用程式判斷裝置硬體的相機功能。 android.media.ExifInterface
新增擷取 GPS 和焦距的功能。
裝置政策管理工具
開發人員可以透過新的 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
。 - 全新版面配置屬性
tabStripEnabled
、tabStripRight
和tabStripLeft
,可讓開發人員自訂 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 差異報表。