Android 3.0 API

API 級別: 11

開發人員可使用 Android 3.0 平台 (HONEYCOMB) 可供下載 Android SDK 專用的元件可下載的平台包含 Android 程式庫和系統 以及一組模擬器外觀等項目可下載的平台不含外部 程式庫

開發人員可以用 Android 3.0 平台 適用於 Android SDK 的可下載元件。可下載的平台包括 Android 程式庫和系統映像檔,以及一組模擬器外觀 內容。如要開始針對 Android 3.0 進行開發或測試 使用 Android SDK Manager 將這個平台下載到 SDK。

API 總覽

以下各節提供技術總覽,說明 Android 3.0 開發人員的新功能。 包含上個版本以來的架構 API 的新功能與變更

片段

片段是一種新的架構元件,可讓您 將活動移入獨立模組,自行定義 UI 和生命週期。如要建立 片段,您必須擴充 Fragment 類別並實作多個生命週期 回呼方法,與 Activity 類似。您之後也可以將多個 單一活動中的片段,用來建構多窗格 UI 窗格會管理自己的生命週期和使用者輸入內容。

您也可以在不提供 UI 的情況下使用片段,並改用該片段做為工作站 例如管理下載進度 活動正在進行中。

其他規範事項如下:

  • 片段是獨立的,可以在多個活動中重複使用
  • 您可以新增、移除及取代活動中的片段,並為其加上動畫效果
  • 您可以將片段新增至由活動管理的返回堆疊,以保留 片段變更時,可讓使用者反向瀏覽 州
  • 只要提供 替代版面配置來組合及比對片段 依螢幕大小和方向調整
  • 片段可以直接存取其容器活動,也能為 活動的動作列 (將於下述說明)

如要管理活動中的片段,您必須使用 FragmentManager,其提供多個用於與片段互動的 API,例如 例如在活動中尋找片段,並從返回堆疊中彈出片段以還原 先前的狀態

如要執行交易 (例如新增或移除片段),則必須建立 FragmentTransaction。接著,您就可以呼叫 add() remove()replace() 等方法。套用所有必要資訊後 要對交易執行的變更,您必須呼叫 commit(),然後系統會套用片段交易 該活動。

若要進一步瞭解如何使用片段,請參閱「片段」說明文件。數個 如需使用範例,請前往 「API Demos」應用程式。

動作列

動作列會取代活動視窗頂端的傳統標題列。 「小工具」的左側角落提供了應用程式標誌,並為 選項選單。此外, 動作列可讓您:

  • 直接在動作列中新增選單項目,做為「操作項目」。

    在選單項目的 XML 宣告中加入 android:showAsAction 屬性,並將值設為 "ifRoom"。空間足夠時,選單 ,直接在動作列中顯示。如果沒有,系統會將項目放在 溢位選單。這個選單會顯示在動作列右側的選單圖示。

  • 使用小工具 (例如搜尋框) 取代待辦事項,建立 「動作觀看」。

    在選單項目的 XML 宣告中加入 android:actionViewLayout 屬性 含有版面配置資源或含有類別名稱的 android:actionViewClass 屬性 (您也必須宣告 android:showAsAction 屬性,商品才會顯示 即可。)如果動作列空間不足,但該項目顯示在 溢位選單的運作方式與一般選單項目類似,不會顯示小工具。

  • 為應用程式標誌新增動作,並以自訂標誌取代

    系統會自動為應用程式標誌指派 android.R.id.home ID。 系統會在使用者輕觸活動時,將其傳送至活動的 onOptionsItemSelected() 回呼。只要在回呼中回應這個 ID 即可 執行動作,例如前往應用程式的「首頁」活動。

    如要將圖示替換為標誌,請在資訊清單檔案中指定應用程式標誌,並使用 android:logo敬上 屬性,然後在活動中呼叫 setDisplayUseLogoEnabled(true)

  • 新增導覽標記以在片段的返回堆疊中返回
  • 新增分頁或下拉式清單來瀏覽片段
  • 使用主題和背景自訂動作列

「動作列」是所有採用新全像主題的應用程式的標準,也就是 ,且 android:minSdkVersionandroid:targetSdkVersion 設為 "11" 時,也會使用標準格式。

如要進一步瞭解動作列,請參閱動作列說明文件。數個 如需使用範例,請前往 「API Demos」應用程式。

系統剪貼簿

應用程式現可在全系統之間複製及貼上資料 (除了文字以外) 剪貼簿。裁剪的資料可以是純文字、URI 或意圖。

經由內容供應器向系統提供您希望使用者複製的資料。 使用者可以從您的應用程式複製複雜的內容 (例如圖片或資料結構),並且 再貼到支援該類型內容的其他應用程式。

如要開始使用剪貼簿,請取得全域 ClipboardManager 物件 呼叫 getSystemService(CLIPBOARD_SERVICE)

如要將項目複製到剪貼簿,您必須建立新的 ClipData 物件,其中包含一或多個 ClipData.Item 分別描述單一實體如何建立 ClipData 物件 只包含一個 ClipData.Item,這時您可以使用其中一種輔助方法 例如 newPlainText()newUri()newIntent(),每個物件都會傳回已預先載入ClipData 您提供的 ClipData.Item

如要將 ClipData 新增至剪貼簿,請將其傳送至 setPrimaryClip() 做為 ClipboardManager 的執行個體。

接著,您可以在 ClipboardManager 上呼叫 getPrimaryClip(),以便讀取剪貼簿中的檔案,以便貼上。處理您收到的 ClipData 但您必須確保自己能確實處理剪貼簿中的資料類型 再嘗試貼上內容

剪貼簿中只會儲存一段裁剪資料 (ClipData 物件),但一個 ClipData 可包含多個 ClipData.Item

詳情請參閱複製 並貼上說明文件。您也可以在 API 示範中 查看 複製和貼上 的簡易實作方式 並透過「記事本」範例取得更完整的實作。

拖曳

新的 API 可簡化應用程式使用者介面中的拖曳作業。拖曳 作業是指傳輸某種資料—儲存在 ClipData 中 物件) 物件拖曳作業的起點和終點為 View,因此直接處理拖曳作業的 API 會 在 View 類別中。

拖曳作業具有由多種拖曳動作定義的生命週期, 由 DragEvent 物件定義,例如 ACTION_DRAG_STARTEDACTION_DRAG_ENTEREDACTION_DROP。想參與拖曳事件的檢視畫面 作業即可監聽這些動作。

如要開始拖曳活動中的內容,請呼叫 startDrag()View 上,提供一個代表 ClipData 物件,代表 要拖曳的資料,使用 View.DragShadowBuilder 有助於套用「陰影」 使用者拖曳時看到的畫面,以及可分享的 Object 包含可能接收物件的拖曳物件相關資訊。

如要在 View 中接受拖曳物件 (接收「放置」),請註冊檢視畫面 呼叫 setOnDragListener() 來使用 OnDragListener當檢視區塊發生拖曳事件時, 系統會針對 OnDragListener 呼叫 onDrag(),這會接收 DragEvent 說明發生的拖曳動作類型 (例如 ACTION_DRAG_STARTEDACTION_DRAG_ENTEREDACTION_DROP)。在拖曳過程中,系統會重複針對拖曳下方的檢視區塊呼叫 onDrag() 以提供 一個是拖曳事件的串流接收檢視區塊可在 DragEvent 上呼叫 getAction(),註冊傳送至 onDragEvent() 的事件類型。

注意:雖然拖曳事件可能含有 ClipData 物件,但這與系統剪貼簿無關。拖曳 作業一律不應將拖曳的資料放入系統剪貼簿。

詳情請參閱拖曳和 捨棄說明文件。您也可以在 API 示範應用程式和 Honeycomb 元件庫 應用程式。

應用程式小工具

Android 3.0 支援多種新的小工具類別,可為使用者提供更具互動性的應用程式小工具 主畫面,包括:GridViewListViewStackViewViewFlipperAdapterViewFlipper

更重要的是,您可以使用新的 RemoteViewsService 建立應用程式 整合含有集合的小工具,以及使用遠端資料支援的小工具,例如 GridViewListViewStackView; 例如內容供應者

AppWidgetProviderInfo 類別 (在含有 <appwidget-provider> 元素的 XML 中定義) 也支援兩個新欄位:autoAdvanceViewIdpreviewImageautoAdvanceViewId 欄位可讓您指定 應用程式小工具子檢視畫面應該由應用程式小工具主機自動進階。 previewImage 欄位會指定 應用程式小工具的外觀,並會透過小工具挑選器向使用者顯示。如果不支援這個欄位 提供後,應用程式小工具的圖示就會用於預覽畫面。

為協助您為應用程式小工具建立預覽圖片 (以便在 previewImage 欄位中指定),Android 模擬器會包含 稱為「小工具預覽」的應用程式。如要建立預覽圖片,請啟動這個應用程式,然後選取 再設定預覽圖片的顯示方式,然後儲存 並放到應用程式的可繪製資源中

您可以在 StackView 應用程式小工具天氣清單小工具中查看新的應用程式小工具功能的實作方式 應用程式。

狀態列通知

擴充 Notification API,可支援內容更豐富的狀態 工具列通知,並加入新的 Notification.Builder 類別, 建立 Notification 物件。

新功能包括:

  • 使用 setLargeIcon(),支援通知中的大型圖示。這通常是 社交應用程式,顯示 通知或媒體應用程式顯示相簿縮圖。
  • 使用 setTicker(),在狀態列貼紙中支援自訂版面配置。
  • 支援自訂通知版面配置,納入含有 PendingIntent 的按鈕,提供更互動式的通知小工具。舉例來說 通知功能可在不啟動活動的情況下控制音樂播放。

內容載入器

新的架構 API 有助於使用 Loader 類別,以非同步方式載入資料。可與 UI 元件搭配使用,例如檢視畫面及 用於從背景工作執行緒動態載入資料的片段。CursorLoader 子類別專門用來協助您處理 ContentProvider

您只需實作 LoaderCallbacks 介面,即可在要求新的載入器或資料 已變更,然後呼叫 initLoader() 來初始化 。

詳情請參閱載入器說明文件。您也可以查看 在 LoaderCursor 中使用載入器的範例程式碼 和 LoaderThrottle 範例。

藍牙 A2DP 和耳機 API

Android 現在提供 API,可讓應用程式驗證已連線藍牙 A2DP 的狀態, 耳機設定檔裝置。舉例來說,應用程式可以識別藍牙耳機 連線聆聽音樂,並視情況通知使用者。應用程式還可能會收到 播送供應商專屬的 AT 指令,並通知使用者連線狀態。 ,例如連結裝置的電池電量不足時。

您可以使用 A2DPHEADSET 呼叫 getProfileProxy(),藉此初始化各自的 BluetoothProfile 設定檔常數和 BluetoothProfile.ServiceListener,以便接收 藍牙用戶端連線或中斷連線時的回呼。

動畫架構

全新的彈性動畫架構可讓你為任何物件的任意屬性建立動畫 (View、Drawable、Fragment、Object 或任何其他項目)。你可以定義 動畫,例如:

  • 時間長度
  • 重複的金額和行為
  • 內插時間類型
  • 動畫工具可設定讓動畫在指定延遲或依序播放的情況下一起播放
  • 影格重新整理延遲時間

您可以為物件的 int、浮點值和十六進制定義這些動畫切面和其他元素 色彩值。也就是說,當物件包含這些型別的屬性欄位時, 可以隨著時間變更數值來調整動畫。如要為任何其他類型的值加上動畫效果 系統如何藉由實作 TypeEvaluator 介面,計算該指定類型的值。

您可以使用兩個動畫工具,為屬性值的動畫效果加上動畫效果:ValueAnimatorObjectAnimatorValueAnimator 會計算動畫值,但不瞭解特定 以結果動畫形式的物件或屬性。它只會執行計算,且您必須 監聽更新,並使用自己的邏輯處理資料。ObjectAnimatorValueAnimator 和 可讓您設定物件和屬性動畫,並處理所有動畫工作。 也就是說,要向 ObjectAnimator 指派要加入動畫的物件, 要隨時間變更的物件屬性,以及一組要套用至屬性的值 然後開始播放動畫

此外,LayoutTransition 類別會啟用自動轉換 變更活動版面配置的動畫。如要在 版面配置,請建立 LayoutTransition 物件並設為 呼叫 setLayoutTransition() 即可得知任何 ViewGroup。這會造成預設值 每當在群組中加入或移除項目時觸發動畫。如何指定自訂項目 動畫、在 LayoutTransition 上呼叫 setAnimator(),並提供自訂 Animator, 例如:ValueAnimatorObjectAnimator

詳情請參閱「屬性動畫」說明文件。你可以 也可以查看幾個使用動畫 API API 的範例 試用版應用程式。

擴充的 UI 架構

  • ListView 和 GridView 的複選選項

    適用於setChoiceMode()的全新 CHOICE_MODE_MULTIPLE_MODAL 模式可讓使用者選取多個項目 來自 ListViewGridView。用於 也可以將動作列與動作列搭配使用,讓使用者可以選取多個項目並選取所需動作 從動作列的選項清單中執行 (已轉變為複選題) 動作模式)。

    如要啟用複選功能,請呼叫 setChoiceMode(CHOICE_MODE_MULTIPLE_MODAL) 並註冊 MultiChoiceModeListenersetMultiChoiceModeListener()

    當使用者長按項目時,動作列會切換為「複選」選項 動作模式。透過呼叫 onItemCheckedStateChanged() 選取項目時,系統會通知 MultiChoiceModeListener

    如需選擇題的範例,請參閱 List15. Java API Demos 應用程式範例中的類別進行說明。

  • 新增可轉換檢視畫面的 API

    新的 API 可讓您輕鬆將 2D 和 3D 轉換套用至活動中的檢視畫面 版面配置。您可以使用一組物件屬性,定義檢視畫面的 版面配置位置、方向、透明度等

    設定檢視區塊屬性的新方法包括:setAlpha()setBottom()setLeft()setRight()setBottom()setPivotX()setPivotY()setRotationX()setRotationY()setScaleX()setScaleY()setAlpha() 等。

    部分方法也有對應的 XML 屬性,可在版面配置中指定 檔案) 來套用預設轉換。可用屬性包括:translationXtranslationYrotationrotationXrotationYscaleXscaleYtransformPivotXtransformPivotYalpha

    結合使用部分新的檢視屬性與新的動畫架構 (如討論後所述) 就能輕鬆將精美的動畫套用至檢視畫面。舉例來說,如要旋轉 在 Y 軸上的檢視畫面,為 ObjectAnimator 提供 View,即「旋轉 Y」。,以及起始和結束值:

    Kotlin

    ObjectAnimator.ofFloat(myView, "rotationY", 0f, 360f).apply {
        duration = 2000
        start()
    }
    

    Java

    ObjectAnimator animator = ObjectAnimator.ofFloat(myView, "rotationY", 0, 360);
    animator.setDuration(2000);
    animator.start();
    
  • 全新全像主題

    標準系統小工具和整體外觀已重新設計,並結合全新的 「全像投影」使用者介面主題系統會套用新的主題 使用標準的樣式和主題系統。

    指定 Android 3.0 平台的任何應用程式,方法是設定 android:minSdkVersionandroid:targetSdkVersion 的值變更為 "11":預設沿用全景主題。 但是,如果您的應用程式也套用本身的主題,您的主題就會覆寫 全像主題。除非您更新樣式來沿用全景主題。

    如何為個別活動套用全景主題,或是沿用自己的主題 請使用其中一個新的 Theme.Holo 主題。如果您的應用程式與 Android 3.0 以下版本相容,且適用 自訂主題,則您應該根據平台選取主題 版本

  • 新小工具
    • AdapterViewAnimator

      在切換時執行動畫的 AdapterView 基礎類別 之間的平衡

    • AdapterViewFlipper

      簡易的 ViewAnimator,可在兩個以上的檢視畫面之間建立動畫效果 已加入。系統一次只會顯示一名兒童。如有需要,裝置可自動切換 介於 每個子項按照規律的間隔

    • CalendarView

      使用者只要輕觸日期,即可從日曆中選取日期,同時可以捲動或快速滑過 到指定日期您可以在小工具中設定可用的日期範圍。

    • ListPopupWindow

      錨定至主機檢視畫面,並顯示選項清單,例如列出 在 EditText 檢視畫面中輸入內容時提供建議。

    • NumberPicker

      可讓使用者從預先定義的範圍中選取數字。小工具會顯示輸入內容 或向上和向下按鈕,即可選取數字。使用者輕觸輸入欄位即可 捲動值或再次輕觸即可直接編輯目前的值。這也可用於 定位到字串,因此顯示對應的字串而非索引 位置。

    • PopupMenu

      在錨定至檢視區塊的強制回應彈出式視窗中顯示 Menu。 如果有空間,錨定檢視畫面下方會顯示彈出式視窗;如果沒有空間,則會顯示在錨定檢視畫面上方。如果輸入法編輯器 (軟硬體) 鍵盤) 顯示時,使用者必須輕觸彈出式視窗,才能與輸入法編輯器重疊 或前往 Google 試算表選單

    • SearchView

      提供搜尋框,您可設定將搜尋查詢傳送至指定的位址 活動並顯示搜尋建議 (與傳統搜尋對話方塊相同)。這個 小工具在動作列中提供搜尋小工具時特別實用。如需更多資訊 請參閱「建立搜尋介面」。

    • StackView

      以 3D 堆疊顯示子項的檢視畫面,可讓使用者滑動瀏覽 就像 rolodex 一樣

圖形

  • 硬體加速 2D 圖形

    您現在可以在資訊清單元素的 <application> 中設定 android:hardwareAccelerated="true",為應用程式啟用 OpenGL 轉譯器 元素或個別 <activity> 元素。

    這個標記可協助應用程式加快繪製速度。這可以讓動畫更流暢 的捲動速度更順暢,整體效能和回應使用者互動的反應也更佳。

  • 查看對硬體和軟體層的支援

    根據預設,View 未指定任何圖層。您可以指定 檢視畫面由硬體或軟體層支援 (由值 LAYER_TYPE_HARDWARELAYER_TYPE_SOFTWARE 指定),使用 setLayerType()layerType 屬性。

    硬體圖層由硬體專用紋理 (通常為框架緩衝區物件或 FBO 在 OpenGL 硬體上執行),並使用 Android 的硬體轉譯功能算繪檢視畫面。 但前提是檢視區塊階層已啟用硬體加速功能。硬體 加速功能則會關閉,硬體層的運作方式和軟體層完全相同。

    軟體層是由點陣圖支援,並使用 Android 的 軟體轉譯管道軟體層 會避開這個錯誤。每次更新都需要重新轉譯 所以可能較慢

    詳情請參閱 LAYER_TYPE_HARDWARELAYER_TYPE_SOFTWARE 說明文件。

  • Renderscript 3D 圖形引擎

    Renderscript 是一種執行階段 3D 架構,同時提供用於建構 3D 場景的 API 。使用 Renderscript 時 能加快圖像處理與資料處理速度Renderscript 是建立容器映像檔的好方法 無論是應用程式、桌布、輪轉介面等等,都能提供高效能的 3D 效果。

    如需詳細資訊,請參閱 3D 轉譯和計算工具: Renderscript 說明文件。

媒體

  • 縮時攝影影片

    Camcorder API 現已支援錄製縮時影片。setCaptureRate() 會設定影格速率 。

  • 圖片串流的紋理支援

    新的 SurfaceTexture 可讓您以 OpenGL ES 形式擷取圖片串流 生成的圖片呼叫 setPreviewTexture() 即可: Camera 執行個體時,您可以指定 SurfaceTexture,從這個位置擷取影片播放或預覽影格 相機上

  • HTTP 直播

    應用程式現在可以將 M3U 播放清單網址傳送至媒體架構,以啟動 HTTP 直播 每個 Pod 都有一個 IP 位址媒體架構支援大多數的 HTTP 即時串流規格 包括自動調整位元率請參閱支援的媒體格式文件,瞭解 瞭解詳情

  • EXIF 資料

    ExifInterface 包含相片光圈、ISO 和曝光的新欄位 讓應用程式從可以最快做出回應的位置 回應使用者要求

  • 攝錄影機資料

    新增 hasProfile() 方法和多部影片 優質的設定檔 (例如 QUALITY_1080PQUALITY_720PQUALITY_CIF 等) 可讓您判斷攝影機 品質選項

  • 數位媒體檔案傳輸

    這個平台內建 USB 媒體/圖像傳輸通訊協定 (MTP/PTP) 支援功能, 讓使用者輕鬆在裝置與主機電腦之間傳輸任何類型的媒體檔案。 開發人員可以憑藉這項支援功能,打造可供使用者建立或管理豐富資源的應用程式 想在不同裝置間傳輸或分享的媒體檔案。

  • 數位版權管理 (DRM)

    用於檢查及實施數位的可擴充數位版權管理 (DRM) 架構 權利。並在兩個架構層中實作:

    • DRM 架構 API。這個 API 會向應用程式公開,並透過 Dalvik VM 執行 標準應用程式
    • 實作架構 API 及提供 DRM 介面的原生程式碼 DRM Manager 這個外掛程式,可以處理多種數位著作權管理機制的版權管理和解密作業。

    這個架構為應用程式開發人員提供了一種抽象、統合的 API,以簡化 的機制。這個 API 隱藏了 DRM 作業的複雜性,並允許 適用於受保護和未受保護的內容,以及多種數位著作權管理政策 例如,您可以看到

    如果您是裝置製造商、內容擁有者和網際網路數位媒體供應商,則 DRM 架構的外掛程式 API 可將所選 DRM 配置的支援加入 Android 系統,用於安全地強制執行內容保護措施。

    預先發布版並未提供用於檢查及強制執行數位的原生 DRM 外掛程式 權利。不過,裝置製造商可能會將 DRM 外掛程式與他們的裝置一起提供。

    您可以在 android.drm 套件中找到所有 DRM API。

鍵盤支援

  • 支援 Control、Meta、Caps Lock、Num Lock 和 Scroll Lock 修飾符。如需更多資訊 請參閱 META_CTRL_ON 和相關欄位。
  • 支援完整的桌面式鍵盤,包括支援 Escape、Home、End、 刪除和其他內容。如要判斷重要事件是否來自完整鍵盤 查詢 getKeyboardType() 並檢查 KeyCharacterMap.FULL
  • TextView 現在支援以鍵盤為基礎的剪下、複製和 使用 Control+X、Control+C 鍵和 Ctrl + V 鍵和 Control + A 鍵也支援 PageUp/PageDown、Home/End 和 以鍵盤為基礎的文字選取功能
  • KeyEvent 會新增多個新方法,方便您查看金鑰 確保修飾符狀態一致請參閱hasModifiers(int)hasNoModifiers(), metaStateHasModifiers(), metaStateHasNoModifiers()
  • 應用程式可以實作自訂鍵盤快速鍵,方法是將 ActivityDialogView 設為子類別,並實作 onKeyShortcut()。架構會呼叫這個方法 則每次鍵與 Control 鍵結合時建立選項選單時,您可以註冊鍵盤 捷徑,方法是設定每個 <item>android:alphabeticShortcutandroid:numericShortcut 屬性 元素 (或包含 setShortcut() 元素)。
  • Android 3.0 版內建全新的「虛擬鍵盤」裝置 (ID:KeyCharacterMap.VIRTUAL_KEYBOARD)。虛擬 鍵盤提供電腦式的美式按鍵對應配置,這有助於統整重要事件進行測試 。

分割觸控事件

先前,一次只能在單一檢視畫面接受觸控事件。Android 3.0 版 支援在各個檢視畫面及甚至視窗之間分割觸控事件,因此不同的檢視畫面可接受 同時進行的觸控事件。

在應用程式目標鎖定時,系統會預設啟用分割觸控事件 Android 3.0。也就是說,如果應用程式已將 android:minSdkVersionandroid:targetSdkVersion 屬性的值為 "11"

不過,下列屬性可讓您停用不同檢視畫面中的分割觸控事件 特定檢視區塊群組和跨視窗。

  • 檢視區塊群組的 android:splitMotionEvents 屬性 可讓您停用在版面配置中不同子檢視畫面之間的分割觸控事件。例如:
    <LinearLayout android:splitMotionEvents="false" ... >
        ...
    </LinearLayout>
    

    這樣在線性版面配置中的子檢視區塊無法分割觸控事件,只能有一個檢視畫面 逐一接收觸控事件。

  • android:windowEnableSplitTouch 樣式屬性 將分割觸控事件套用至活動的主題,即可停用跨視窗的分割觸控事件 或整個應用程式例如:
    <style name="NoSplitMotionEvents" parent="android:Theme.Holo">
        <item name="android:windowEnableSplitTouch">false</item>
        ...
    </style>
    

    當這個主題套用到 <activity><application> 時, 只接受目前活動時間範圍內的觸控事件。例如 跨視窗的觸控事件,系統列無法同時接收觸控事件 活動。這「不會」影響活動中的檢視畫面是否能分割觸控功能 事件:根據預設,活動仍可將觸控事件分割至不同檢視畫面。

    如要進一步瞭解如何建立主題,請參閱「套用樣式和主題」。

WebKit

  • 新增 WebViewFragment 類別,用於建立由 WebView
  • 新的 WebSettings 方法:
  • 新的 WebView 方法:
    • onPause() 回呼 (用於暫停任何處理) 與 WebView 隱藏時的所有關聯。這有助於減少不必要的 CPU WebView 並非在前景執行時所獲得的網路流量。
    • onResume() 回呼,以便繼續處理 與 WebView 相關聯 (在 onPause() 中暫停)。
    • saveWebArchive() 可讓您儲存 顯示為裝置上的網頁封存檔。
    • showFindDialog() 會在以下位置啟動文字搜尋: 目前的資料檢視

Browser

「瀏覽器」應用程式新增以下功能來支援網頁應用程式:

  • 媒體擷取

    根據 HTML 媒體擷取定義 或其他規格,瀏覽器允許網頁應用程式存取音訊、圖片和影片擷取 裝置的功能例如,下列 HTML 提供使用者輸入內容的輸入內容。 拍攝相片進行上傳:

    <input type="file" accept="image/*;capture=camera" />
    

    如果排除 capture=camera 參數,使用者可以選擇擷取 新的圖片,或從裝置中選取圖片 (例如從圖片庫應用程式)。

  • 裝置螢幕方向

    根據裝置方向事件定義 的規格,瀏覽器允許網頁應用程式監聽提供資訊的 DOM 事件 裝置的實際方向和動作。

    裝置螢幕方向會以 x、y 和 z 軸表示,以度為單位, 以加速和旋轉率資料表示。網頁可註冊螢幕方向 使用事件類型為 "deviceorientation" 來呼叫 window.addEventListener 的事件 ,並註冊 "devicemotion" 事件類型,註冊動作事件。

  • CSS 3D 變形

    根據 CSS 3D 變形效果定義 Module 規格,則瀏覽器允許 CSS 轉譯的元素,以三種方式轉換 維度。

JSON 公用程式

全新課程「JsonReader」和「JsonWriter」助您一臂之力 讀取及寫入 JSON 串流新的 API 可補充 org.json 類別, 就能搜尋記憶體中的文件

您可以呼叫以下程式碼,建立 JsonReader 的執行個體: 其建構函式方法並傳遞動態饋給 JSON 字串的 InputStreamReader。 接著呼叫 beginObject() 開始讀取物件, 具有 nextName() 的鍵名,並使用方法讀取值 分別對應於類型,例如 nextString()nextInt(),並在 hasNext() 為 true 時繼續這麼做。

您可以呼叫其建構函式,以建立 JsonWriter 的例項。 傳遞適當的 OutputStreamWriter。接著以特定方式寫入 JSON 資料 類似於讀取器,使用 name() 新增屬性名稱 並使用適當的 value() 方法 值。

這些類別預設為嚴格限制。setLenient() 方法,使其在接受的內容中更傾向。這個寬鬆 剖析模式也與 org.json 的預設剖析器相容。

新功能常數

<uses-feature> manfest 元素應用來告知外部實體 (例如 Google Play) 硬體和軟體功能。在這個版本中,Android 新增了 下列新常數可供應用程式使用此元素宣告:

  • "android.hardware.faketouch"

    宣告時,表示應用程式與提供 模擬觸控螢幕 (或更高)。具備模擬觸控螢幕的裝置則會為使用者提供輸入內容 系統可以模擬部分觸控螢幕 即便沒有技術背景,也能因這些工具的功能而受益例如,滑鼠或遙控器 畫面上的遊標這類輸入系統支援基本觸控事件,例如點按、向上和拖曳。 不過,較複雜的輸入類型 (例如手勢、快速滑過等) 可能較為困難或 不適用於假觸控裝置 (而且多點觸控手勢絕對無法使用)。

    如果您的應用程式不需要使用複雜的手勢,而您 從具有模擬觸控螢幕的裝置篩選應用程式, 應使用 <uses-feature> 宣告 "android.hardware.faketouch" 元素。這樣一來,您的應用程式就能提供給大多數的裝置類型 包括只提供模擬觸控螢幕輸入功能的使用者

    所有包含觸控螢幕的裝置也都支援 "android.hardware.faketouch",因為 觸控螢幕功能是大量觸控功能的超集合。除非您確實需要 如果是觸控螢幕,請新增 <uses-feature> 建立 Dake 元件

新權限

全新平台技術

  • 儲存空間
    • ext4 檔案系統支援,可啟用內建 eMMC 儲存體。
    • FUSE 檔案系統,用於支援 MTP 裝置。
    • 支援 USB 主機模式,支援鍵盤和 USB 集線器。
    • 支援 MTP/PTP
  • Linux 核心
    • 已升級至 2.6.36
  • Dalvik VM
    • 支援並最佳化 SMP 的新程式碼
    • 針對 JIT 基礎架構做出多項改善
    • 垃圾收集器改善:
      • 為 SMP 進行調整
      • 支援較大的堆積大小
      • 點陣圖和位元組緩衝區的統一處理
  • Dalvik 核心程式庫
    • 更快速的全新 NIO 實作 (新型 I/O 程式庫)
    • 改善例外狀況訊息
    • 全面修正及修正效能問題

API 差異報表

如需 Android 3.0 (API 級別) 中所有 API 變更的詳細資料 11),請參閱 API 差異報告

API 級別

Android 3.0 平台提供 架構 APIAndroid 3.0 API 會指派一個整數 ID 11,也就是 儲存於系統本身這個識別碼稱為「API 級別」 系統才能正確判斷 系統進行更新。

如要在應用程式中使用 Android 3.0 中導入的 API, 您需要針對 Android 3.0 SDK 平台根據您的需求 需要新增android:minSdkVersion="11" 屬性設為應用程式所用 <uses-sdk> 元素中的 資訊清單。如果您的應用程式設計為僅支援 Android 2.3 以上版本, 宣告 屬性可避免之前安裝應用程式 每個 Pod 都有一個專屬版本

詳情請參閱「什麼是 API? 關卡?