Android 2.0,版本 1

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 平台亮點文件。

內建應用程式

可下載平台中的系統映像檔提供了 內建應用程式:

  • 鬧鐘
  • Browser
  • 計算機
  • 攝錄影機
  • 相機
  • 聯絡人
  • 自訂語言代碼 (開發人員應用程式)
  • 開發人員工具 (開發人員應用程式)
  • Dialer
  • 電子郵件
  • 圖庫
  • 手勢建構工具
  • 日文文字輸入的輸入法編輯器
  • 訊息
  • 音樂
  • 設定
  • 備用零件 (開發人員應用程式)

語言/地區

可下載平台內含的系統映像檔 內建語言代碼在某些情況下,區域專屬字串可在 語言代碼。在其他情況下,系統會使用該語言的預設版本。 Android 2.0 系統支援的語言 下列映像檔 (使用 language_country/region 語言代碼) 描述元)。

  • 中文,中華人民共和國 (zh_CN)
  • 中文,台灣 (zh_TW)
  • 捷克文 (cs_CZ)
  • 荷蘭文,荷蘭 (nl_NL)
  • 荷蘭文,比利時 (nl_BE)
  • 英文,美國 (en_US)
  • 英文,英國 (en_GB)
  • 英文,加拿大 (en_CA)
  • 英文,澳洲 (en_AU)
  • 英文,紐西蘭 (en_NZ)
  • 英文,新加坡(en_SG)
  • 法文,法國 (fr_FR)
  • 法文,比利時 (fr_BE)
  • 法文,加拿大 (fr_CA)
  • 法文,瑞士 (fr_CH)
  • 德文,德國 (de_DE)
  • 德文,奧地利 (de_AT)
  • 德文,瑞士 (de_CH)
  • 德文,列支敦斯登 (de_LI)
  • 義大利義大利 (it_IT)
  • 義大利文,瑞士 (it_CH)
  • 日文 (ja_JP)
  • 韓文 (ko_KR)
  • 波蘭文 (pl_PL)
  • 俄文 (ru_RU)
  • 西班牙文 (es_ES)
  • 本地化 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 差異報告