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:minSdkVersion
或 android: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_STARTED
、ACTION_DRAG_ENTERED
和
ACTION_DROP
。想參與拖曳事件的檢視畫面
作業即可監聽這些動作。
如要開始拖曳活動中的內容,請呼叫 startDrag()
在 View
上,提供一個代表 ClipData
物件,代表
要拖曳的資料,使用 View.DragShadowBuilder
有助於套用「陰影」
使用者拖曳時看到的畫面,以及可分享的 Object
包含可能接收物件的拖曳物件相關資訊。
如要在 View
中接受拖曳物件 (接收「放置」),請註冊檢視畫面
呼叫 setOnDragListener()
來使用 OnDragListener
當檢視區塊發生拖曳事件時,
系統會針對 OnDragListener
呼叫 onDrag()
,這會接收 DragEvent
說明發生的拖曳動作類型 (例如 ACTION_DRAG_STARTED
、ACTION_DRAG_ENTERED
和
ACTION_DROP
)。在拖曳過程中,系統會重複針對拖曳下方的檢視區塊呼叫 onDrag()
以提供
一個是拖曳事件的串流接收檢視區塊可在 DragEvent
上呼叫 getAction()
,註冊傳送至 onDragEvent()
的事件類型。
注意:雖然拖曳事件可能含有 ClipData
物件,但這與系統剪貼簿無關。拖曳
作業一律不應將拖曳的資料放入系統剪貼簿。
詳情請參閱拖曳和 捨棄說明文件。您也可以在 API 示範應用程式和 Honeycomb 元件庫 應用程式。
應用程式小工具
Android 3.0 支援多種新的小工具類別,可為使用者提供更具互動性的應用程式小工具
主畫面,包括:GridView
、ListView
、StackView
、ViewFlipper
和AdapterViewFlipper
。
更重要的是,您可以使用新的 RemoteViewsService
建立應用程式
整合含有集合的小工具,以及使用遠端資料支援的小工具,例如 GridView
、ListView
和 StackView
;
例如內容供應者
AppWidgetProviderInfo
類別 (在含有 <appwidget-provider>
元素的 XML 中定義) 也支援兩個新欄位:autoAdvanceViewId
和 previewImage
。autoAdvanceViewId
欄位可讓您指定
應用程式小工具子檢視畫面應該由應用程式小工具主機自動進階。
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 指令,並通知使用者連線狀態。 ,例如連結裝置的電池電量不足時。
您可以使用 A2DP
或 HEADSET
呼叫 getProfileProxy()
,藉此初始化各自的 BluetoothProfile
設定檔常數和 BluetoothProfile.ServiceListener
,以便接收
藍牙用戶端連線或中斷連線時的回呼。
動畫架構
全新的彈性動畫架構可讓你為任何物件的任意屬性建立動畫 (View、Drawable、Fragment、Object 或任何其他項目)。你可以定義 動畫,例如:
- 時間長度
- 重複的金額和行為
- 內插時間類型
- 動畫工具可設定讓動畫在指定延遲或依序播放的情況下一起播放
- 影格重新整理延遲時間
您可以為物件的 int、浮點值和十六進制定義這些動畫切面和其他元素
色彩值。也就是說,當物件包含這些型別的屬性欄位時,
可以隨著時間變更數值來調整動畫。如要為任何其他類型的值加上動畫效果
系統如何藉由實作 TypeEvaluator
介面,計算該指定類型的值。
您可以使用兩個動畫工具,為屬性值的動畫效果加上動畫效果:ValueAnimator
和 ObjectAnimator
。ValueAnimator
會計算動畫值,但不瞭解特定
以結果動畫形式的物件或屬性。它只會執行計算,且您必須
監聽更新,並使用自己的邏輯處理資料。ObjectAnimator
是 ValueAnimator
和
可讓您設定物件和屬性動畫,並處理所有動畫工作。
也就是說,要向 ObjectAnimator
指派要加入動畫的物件,
要隨時間變更的物件屬性,以及一組要套用至屬性的值
然後開始播放動畫
此外,LayoutTransition
類別會啟用自動轉換
變更活動版面配置的動畫。如要在
版面配置,請建立 LayoutTransition
物件並設為
呼叫 setLayoutTransition()
即可得知任何 ViewGroup
。這會造成預設值
每當在群組中加入或移除項目時觸發動畫。如何指定自訂項目
動畫、在 LayoutTransition
上呼叫 setAnimator()
,並提供自訂 Animator
,
例如:ValueAnimator
或 ObjectAnimator
。
詳情請參閱「屬性動畫」說明文件。你可以 也可以查看幾個使用動畫 API API 的範例 試用版應用程式。
擴充的 UI 架構
- ListView 和 GridView 的複選選項
適用於
setChoiceMode()
的全新CHOICE_MODE_MULTIPLE_MODAL
模式可讓使用者選取多個項目 來自ListView
或GridView
。用於 也可以將動作列與動作列搭配使用,讓使用者可以選取多個項目並選取所需動作 從動作列的選項清單中執行 (已轉變為複選題) 動作模式)。如要啟用複選功能,請呼叫
setChoiceMode(CHOICE_MODE_MULTIPLE_MODAL)
並註冊MultiChoiceModeListener
:setMultiChoiceModeListener()
。當使用者長按項目時,動作列會切換為「複選」選項 動作模式。透過呼叫
onItemCheckedStateChanged()
選取項目時,系統會通知MultiChoiceModeListener
。如需選擇題的範例,請參閱 List15. Java API Demos 應用程式範例中的類別進行說明。
- 新增可轉換檢視畫面的 API
新的 API 可讓您輕鬆將 2D 和 3D 轉換套用至活動中的檢視畫面 版面配置。您可以使用一組物件屬性,定義檢視畫面的 版面配置位置、方向、透明度等
設定檢視區塊屬性的新方法包括:
setAlpha()
、setBottom()
、setLeft()
、setRight()
、setBottom()
、setPivotX()
、setPivotY()
、setRotationX()
、setRotationY()
、setScaleX()
、setScaleY()
、setAlpha()
等。部分方法也有對應的 XML 屬性,可在版面配置中指定 檔案) 來套用預設轉換。可用屬性包括:
translationX
、translationY
、rotation
、rotationX
、rotationY
、scaleX
、scaleY
、transformPivotX
、transformPivotY
及alpha
。結合使用部分新的檢視屬性與新的動畫架構 (如討論後所述) 就能輕鬆將精美的動畫套用至檢視畫面。舉例來說,如要旋轉 在 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:minSdkVersion
或android: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_HARDWARE
和LAYER_TYPE_SOFTWARE
指定),使用setLayerType()
或layerType
屬性。硬體圖層由硬體專用紋理 (通常為框架緩衝區物件或 FBO 在 OpenGL 硬體上執行),並使用 Android 的硬體轉譯功能算繪檢視畫面。 但前提是檢視區塊階層已啟用硬體加速功能。硬體 加速功能則會關閉,硬體層的運作方式和軟體層完全相同。
軟體層是由點陣圖支援,並使用 Android 的 軟體轉譯管道軟體層 會避開這個錯誤。每次更新都需要重新轉譯 所以可能較慢
詳情請參閱
LAYER_TYPE_HARDWARE
和LAYER_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_1080P
、QUALITY_720P
、QUALITY_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()
。- 應用程式可以實作自訂鍵盤快速鍵,方法是將
Activity
、Dialog
或View
設為子類別,並實作onKeyShortcut()
。架構會呼叫這個方法 則每次鍵與 Control 鍵結合時建立選項選單時,您可以註冊鍵盤 捷徑,方法是設定每個<item>
的android:alphabeticShortcut
或android:numericShortcut
屬性 元素 (或包含setShortcut()
元素)。 - Android 3.0 版內建全新的「虛擬鍵盤」裝置 (ID:
KeyCharacterMap.VIRTUAL_KEYBOARD
)。虛擬 鍵盤提供電腦式的美式按鍵對應配置,這有助於統整重要事件進行測試 。
分割觸控事件
先前,一次只能在單一檢視畫面接受觸控事件。Android 3.0 版 支援在各個檢視畫面及甚至視窗之間分割觸控事件,因此不同的檢視畫面可接受 同時進行的觸控事件。
在應用程式目標鎖定時,系統會預設啟用分割觸控事件
Android 3.0。也就是說,如果應用程式已將 android:minSdkVersion
或 android: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
方法:setDisplayZoomControls()
可讓你隱藏 畫面上的縮放控制項,同時仍允許使用者用手指手勢縮放 (必須設定setBuiltInZoomControls()
true
)。- 新的
WebSettings
方法setEnableSmoothTransition()
可讓您 可讓您在平移和縮放時順利轉換。啟用後,WebView 會選擇解決方案 以盡可能提高效能 (例如,在開啟叢集期間,WebView 的內容可能無法更新 轉換)。
- 新的
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 元件
新權限
"android.permission.BIND_REMOTEVIEWS"
必須在
<service>
資訊清單中宣告為必要權限 實作RemoteViewsService
的元素。舉例來說 建立使用RemoteViewsService
填入 則資訊清單項目可能如下所示:<service android:name=".widget.WidgetService" android:exported="false" android:permission="android.permission.BIND_REMOTEVIEWS" />
全新平台技術
- 儲存空間
- 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? 關卡?