API 級別: 5
Android 2.0 是主要平台版本 自 2009 年 11 月起,即可部署至採用 Android 技術的手機。 此版本包含提供給使用者和開發人員的新功能和異動內容 與 Android 架構的 API 整合
開發人員可以用 Android 2.0 平台 適用於 Android SDK 的可下載元件。可下載的平台包括 完全相容的 Android 程式庫和系統映像檔,以及一組模擬器 外觀、範例應用程式等可下載的平台完全 且不含外部程式庫
開始針對 Android 裝置進行開發或測試 2.0 平台,請使用 Android SDK 和 AVD Manager 工具 將該平台下載到您的 SDK 中。
平台特點
如需新使用者功能和平台重點清單,請參閱 Android 版 2.0 平台亮點文件。
內建應用程式
可下載平台中的系統映像檔提供了 內建應用程式:
|
|
語言/地區
可下載平台內含的系統映像檔 內建語言代碼在某些情況下,區域專屬字串可在 語言代碼。在其他情況下,系統會使用該語言的預設版本。 Android 2.0 系統支援的語言 下列映像檔 (使用 language_country/region 語言代碼) 描述元)。
|
|
本地化 UI 字串符合可存取的語言代碼 然後前往「設定」頁面
模擬器外觀
可下載的平台提供一組模擬器外觀,可讓您針對不同螢幕大小和解析度建立應用程式模型。模擬器外觀如下:
- QVGA (240x320,低密度、小螢幕)
- WQVGA (240x400,低密度、一般螢幕)
- FWQVGA (240x432,低密度、一般螢幕)
- HVGA (320x480,中密度,一般螢幕)
- WVGA800 (480x800,高密度,一般螢幕)
- WVGA854 (480x854 高密度,一般螢幕)
如要進一步瞭解如何開發一款能在所有 Android 裝置上正確顯示及正常運作的應用程式,請參閱「支援多螢幕」。
開發人員功能
以下各節針對可下載的 Android 2.0 平台元件提供全新開發人員功能的相關資訊。
足部支撐
- 偵錯和發布模式應用程式簽署。版本模式簽署包含
zipalign
最佳化的整合式支援。詳情請參閱簽署應用程式。 - 新增支援 Emma 檢測專案的全新 Ant 建構系統 (程式碼涵蓋率)。
Framework API
以下各節提供 Android 2.0 平台應用程式架構 API 的相關資訊。
API 級別
Android 2.0 平台提供新版架構 也能使用 Google Cloud CLI 或 Compute Engine API和先前的版本一樣 會指派為整數 ID 5,也就是 儲存於系統本身這個識別碼稱為「API 級別」 系統才能正確判斷 系統進行更新。
如要在應用程式中使用 Android 2.0 中導入的 API,您必須:
請在 <uses-sdk>
的屬性中設定適當的值「5」
加入應用程式資訊清單中。
如要進一步瞭解如何使用 API 級別,請參閱「API 級別」文件。
API 變更摘要
藍牙
- 開啟/關閉藍牙
- 裝置與服務探索
- 使用 RFCOMM 連線到遠端裝置,並傳送/接收資料
- 宣傳 RFCOMM 服務,並監聽傳入的 RFCOMM 連線
同步轉換介面
- 全新的 API,讓同步轉換介面能連線至任何後端
客戶經理
- 集中式客戶經理 API,以安全的方式儲存及存取驗證權杖/密碼
聯絡人
- 支援從多個帳戶取得資料的全新聯絡人 API
- 全新的「快速聯絡架構 API」可讓開發人員在應用程式中建立聯絡人徽章。按一下徽章會開啟視窗,當中會列出按一下就能聯絡使用者的方式。
WebView
- 淘汰的類別:UrlInterceptHandler、Plugins、PonData、PlupList、UrlInterceptRegistry。
相機
- 色彩效果、場景模式、閃光燈模式、焦點模式、白平衡、旋轉和其他設定參數的全新參數。
- 新增 ZoomCallback 介面,可執行縮放等級變更時的動作。
媒體
- 將圖片插入 MediaStore 時,MediaScanner 現在會為所有圖片產生縮圖。
- 全新的 縮圖 API,用於隨選擷取圖片和影片縮圖。
其他架構
- android.R.style 中推出新的系統主題,以便在目前的系統桌布上方輕鬆顯示活動,或在背景中持續顯示先前的活動。
- 全新的 WallpaperManager API 會取代並擴充 Context 先前使用的桌布 API,允許應用程式要求及設定系統桌布。
- 新的 Service API 可協助應用程式正確處理服務生命週期,尤其是在記憶體執行期間可能終止的低記憶體情境。
- Service.setForeground() 已淘汰,目前未執行任何作業。這已由新的 API 取代 (startForeground()),有助於 (且需要) 將進行中的通知與前景狀態建立關聯。
- MotionEvent 現在可以針對支援這項功能的裝置回報即時觸控資訊。最多可同時追蹤三個指標。
- KeyEvent 推出新的按鍵分派 API,可協助實作「向上動作」和「長按」行為,以及新的取消按鍵操作機制 (適用於虛擬鍵)。
- WindowManager.LayoutParams 加入新的常數,可讓視窗在顯示時喚醒螢幕,且即使螢幕處於鎖定狀態,仍會顯示視窗。這可讓應用程式更簡潔地實作應喚醒裝置的鬧鐘等項目。
- 全新的 Intent API 可廣播裝置的固定狀態,並讓應用程式在桌面或車用座架上時,啟動特殊活動。
在 Key-up 上執行按鍵事件
Android 2.0 適用於採用 HOME、Home 等虛擬按鍵的裝置。 使用 MENU、BACK 和 SEARCH,而不是實體按鍵。幫助最好的使用者 在這些裝置上,Android 平台會在 的按鍵組合,而非按鍵的組合。這有助於 意外按鈕事件:讓使用者按下按鈕區域並拖曳 而不產生事件
此行為變更應該只會影響您的應用程式 攔截按鈕事件及採取按鍵動作,而非 。尤其是當應用程式攔截 BACK 鍵時 請確保應用程式能正確處理按鍵事件。
一般而言,我們不建議在應用程式中攔截返回鍵。 但是,如果應用程式正在執行這項操作,並叫用 而非透過按鍵反轉的方式,建議您修改程式碼。
如果您的應用程式會使用 Android 2.0 (API 級別 5) 中導入的 API, 利用新的 API 管理鍵/事件組合:
- 如果您要在活動或對話方塊中攔截 BACK 鍵,
實作新的
onBackPressed()
方法。 - 如果您攔截檢視畫面中的返回鍵,則應該追蹤
按下鍵時的事件 (透過新的
startTracking()
方法),然後在按鍵上叫用動作。可用的模式如下:
Kotlin
override fun onKeyDown(keyCode: Int, event: KeyEvent): Boolean { return when (keyCode) { KeyEvent.KEYCODE_BACK -> { if (event.repeatCount == 0) { event.startTracking() true } else { false } } ... else -> super.onKeyDown(keyCode, event) } } override fun onKeyUp(keyCode: Int, event: KeyEvent): Boolean { return when (keyCode) { KeyEvent.KEYCODE_BACK -> { if (event.isTracking && !event.isCanceled) { // *** DO ACTION HERE *** true } else { false } } ... else -> super.onKeyUp(keyCode, event) } }
Java
public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { event.startTracking(); return true; } return super.onKeyDown(keyCode, event); } public boolean onKeyUp(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK && event.isTracking() && !event.isCanceled()) { // *** DO ACTION HERE *** return true; } return super.onKeyUp(keyCode, event); }
如何更新舊版應用程式,讓應用程式處理 BACK 金鑰在 Android 2.0 和舊版平台中都能正常運作,您 可以採取與上述類似的做法程式碼可攔截 鍵上的目標按鈕事件、設定標記以追蹤重要事件,以及 然後在按鍵上方擷取事件,如果追蹤 旗標另外建議你留意焦點變更,並清除追蹤項目 標記。
API 差異報表
如需 Android 2.0 (API 級別 5) 中 API 變更的詳細檢視畫面, 舊版,請參閱 API 差異報告。