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
最佳化功能的整合式支援。詳情請參閱「簽署應用程式」。 - 新增 Ant 建構系統,支援 Emma 檢測專案 (程式碼涵蓋率)。
Framework API
以下各節提供 Android 2.0 平台應用程式架構 API 的相關資訊。
API 級別
Android 2.0 平台提供新版架構 也能使用 Google Cloud CLI 或 Compute Engine API與先前版本相同,Android 2.0 API 會指派一個整數 ID (5),並儲存在系統本身。這個識別碼稱為「API 級別」 系統才能正確判斷 系統進行更新。
如要在應用程式中使用 Android 2.0 中推出的 API,您必須在應用程式資訊清單的 <uses-sdk>
元素屬性中,設定適當的值「5」。
如要進一步瞭解如何使用 API 級別,請參閱「API 級別」文件。
API 變更摘要
藍牙
- 開啟/關閉藍牙
- 裝置與服務探索
- 使用 RFCOMM 連線至遠端裝置,並傳送/接收資料
- 宣傳 RFCOMM 服務,並監聽傳入的 RFCOMM 連線
同步轉換介面
- 全新的 API,讓同步轉換介面能連線至任何後端
客戶經理
- 集中式帳戶管理員 API,可安全地儲存及存取驗證權杖/密碼
聯絡人
- 支援從多個帳戶取得資料的全新聯絡人 API
- 新的快速聯絡人架構 API 可讓開發人員在應用程式中建立聯絡人徽章。按一下徽章即可開啟視窗,其中列出可用來與該人聯絡的方式,只要按一下即可聯絡。
WebView
- 已淘汰的類別:UrlInterceptHandler、Plugin、PluginData、PluginList、UrlInterceptRegistry。
相機
- 色彩效果、場景模式、閃光燈模式、焦點模式、白平衡、旋轉和其他設定參數的全新參數。
- 新的 ZoomCallback 介面,可在縮放等級變更時執行動作。
媒體
- 將圖片插入 MediaStore 時,MediaScanner 現在會為所有圖片產生縮圖。
- 新的 Thumbnail API,可用於依需求擷取圖片和影片縮圖。
其他架構
- android.R.style 中推出新的系統主題,以便在目前的系統桌布上方輕鬆顯示活動,或在背景中持續顯示先前的活動。
- 新的 WallpaperManager API 會取代先前在 Context 中的桌布 API,並擴充這些 API 的功能,讓應用程式能夠要求及設定系統桌布。
- 新的服務 API 可協助應用程式正確處理服務生命週期,特別是在記憶體不足的情況下,服務可能會在執行期間遭到終止。
- Service.setForeground() 已淘汰,目前未執行任何作業。這已由新的 API 取代 (startForeground()),有助於 (且需要) 將進行中的通知與前景狀態建立關聯。
- MotionEvent 現在可以針對支援這項功能的裝置回報即時觸控資訊。最多可同時追蹤三個指標。
- KeyEvent 推出新的按鍵分派 API,可協助實作「向上動作」和「長按」行為,以及新的取消按鍵操作機制 (適用於虛擬鍵)。
- WindowManager.LayoutParams 有新的常數,可讓視窗在顯示時喚醒螢幕,即使螢幕處於鎖定狀態也能顯示視窗。這可讓應用程式更清楚地實作鬧鐘等需要喚醒裝置的功能。
- 新的 Intent API,可廣播裝置的裝置架狀態,並允許應用程式在裝置放入電腦或車用裝置架時啟動特殊活動。
透過 Key-up 執行的重要事件
Android 2.0 適用於採用 HOME、Home 等虛擬按鍵的裝置。 使用 MENU、BACK 和 SEARCH,而不是實體按鍵。幫助最好的使用者 在這些裝置上,Android 平台會在 的按鍵組合,而非按鍵的組合。這有助於避免意外的按鈕事件,並讓使用者按下按鈕區域,然後拖曳出該區域,而不會產生事件。
只有在應用程式攔截按鈕事件並在按下鍵時採取動作,而非在按下鍵時採取動作時,這項行為變更才會影響應用程式。特別是如果應用程式攔截了返回鍵,您應確保應用程式能正確處理按鍵事件。
一般來說,我們不建議在應用程式中攔截「返回」鍵,但如果應用程式確實這麼做,且在按下鍵時而非放開鍵時叫用某些動作,則應修改程式碼。
如果您的應用程式會使用 Android 2.0 (API 級別 5) 推出的 API,您可以利用新的 API 管理按鍵事件組合:
- 如果您要在活動或對話方塊中攔截「返回」鍵,只需實作新的
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 差異報告。