Android 4.3
歡迎使用 Android 4.3,這是 Jelly Bean 的更甜蜜版本!
Android 4.3 包含效能最佳化功能,以及為使用者和開發人員提供的強大新功能。本文件將概略介紹開發人員的新功能。
如要進一步瞭解新的開發人員 API,請參閱「Android 4.3 API」說明文件。
如要進一步瞭解 Jelly Bean 的新功能,請前往 www.android.com。
更快速、更流暢、更即時
Android 4.3 以 Jelly Bean 中已納入的效能改善功能為基礎,包括vsync 時間、三重緩衝、減少觸控延遲、CPU 輸入提升和硬體加速 2D 算繪,並加入新的最佳化功能,讓 Android 速度更快。
為了提升圖形效能,硬體加速 2D 算繪器現在會最佳化繪圖指令的串流,透過重新排列及合併繪圖作業,將其轉換為更有效率的 GPU 格式。針對多執行緒處理作業,轉譯器現在也可以使用跨多個 CPU 核心的多執行緒來執行特定工作。
Android 4.3 也改善了形狀和文字的算繪。圓形和圓角矩形等形狀現在可以更高品質和更有效率的方式算繪。文字最佳化功能包括使用多種字型或複雜的字形集 (CJK) 時提高效能、縮放文字時提高轉譯品質,以及更快轉譯陰影。
改善視窗緩衝區分配功能可加快應用程式的圖片緩衝區分配作業,並縮短建立視窗時的算繪時間。
為提供最高效能的圖像,Android 4.3 推出了 OpenGL ES 3.0 支援功能,並透過架構和原生 API 讓應用程式可存取此功能。在支援的裝置上,硬體加速 2D 轉譯引擎會利用 OpenGL ES 3.0 優化紋理管理,並提高漸層轉譯精確度。
高效能圖形的 OpenGL ES 3.0
Android 4.3 推出了 Khronos OpenGL ES 3.0 平台支援功能,可在支援的裝置上為遊戲和其他應用程式提供最高效能的 2D 和 3D 圖像功能。您可以透過 Android Native Development Kit (NDK),使用架構 API或原生 API 繫結,充分運用 OpenGL ES 3.0 和相關 EGL 擴充功能。
OpenGL ES 3.0 提供的主要新功能包括進階視覺效果加速功能、高品質 ETC2/EAC 紋理壓縮功能 (做為標準功能)、支援整數和 32 位元浮點的 GLSL ES 著色器語言新版本、進階紋理算繪功能,以及標準化紋理大小和算繪緩衝區格式。
您可以使用 OpenGL ES 3.0 API 建立高度複雜且高效能的圖形,在各種相容的 Android 裝置上執行,並在這些裝置上支援單一標準紋理壓縮格式。
OpenGL ES 3.0 是可選功能,取決於底層圖形硬體。Nexus 7 (2013)、Nexus 4 和 Nexus 10 裝置已支援這項功能。
強化藍牙連線
與藍牙智慧裝置和感應器的連線
您現在可以設計及建構應用程式,與採用 藍牙 Smart 技術的最新一代小型低功耗裝置和感應器互動。
Android 4.3 推出內建平台,可支援中心角色的 Bluetooth Smart Ready,並提供一組標準 API,讓應用程式可用於探索附近裝置、查詢 GATT 服務,以及讀取/寫入特徵。
有了新的 API,應用程式就能有效率地掃描感興趣的裝置和服務。您可以根據 UUID 檢查每部裝置支援的 GATT 服務,並根據裝置 ID 和訊號強度管理連線。您可以連線至裝置上託管的 GATT 伺服器,並讀取或寫入特性,或是註冊事件監聽器,以便在這些特性變更時收到通知。
您可以實作任何 GATT 設定檔的支援功能。您可以讀取或寫入標準特性,或視需要新增自訂特性支援功能。您的應用程式可做為用戶端或伺服器運作,並可在任何模式下傳輸及接收資料。這些 API 是通用的,因此您可以支援與各種裝置的互動,例如接近感應器標籤、手錶、健身計步器、遊戲控制器、遙控器、健康裝置等等。
Nexus 7 (2013) 和 Nexus 4 裝置已支援 Bluetooth Smart Ready,未來幾個月內,支援這項功能的 Android 相容裝置將會越來越多。
AVRCP 1.3 設定檔
Android 4.3 內建支援 Bluetooth AVRCP 1.3,因此應用程式可支援與遠端串流媒體裝置的互動更豐富。媒體播放器等應用程式可透過 Android 4.0 推出的遠端控制用戶端 API 使用 AVRCP 1.3。除了在透過藍牙連線的遠端裝置上顯示播放控制選項,應用程式現在還能傳輸曲目名稱、作曲家和其他類型的媒體中繼資料。
AVRCP 1.3 的平台支援功能是建構在 Google 和 Broadcom 在 Android 4.2 中推出的 Bluedroid Bluetooth 堆疊上。支援功能已可立即在 Nexus 裝置和其他支援 A2DP/AVRCP 的 Android 裝置上使用。
支援受限商家檔案
Android 4.3 擴充了平板電腦的多用戶功能,並提供受限設定檔,這是一種在單一裝置上管理使用者及其功能的新方法。有了受限設定檔,平板電腦擁有者就能為每位使用者快速設定獨立環境,並在這些環境中管理更精細的限制。限制型設定檔非常適合親朋好友、訪客使用者、資訊亭、銷售點裝置等。
每個受限制的設定檔都提供獨立安全的空間,其中包含專屬的本機儲存空間、主畫面、小工具和設定。與使用者不同,系統會根據平板電腦擁有者的環境,根據擁有者安裝的應用程式和系統帳戶建立設定檔。擁有者可控管新設定檔中啟用的已安裝應用程式,且預設會停用擁有者帳戶的存取權。
需要存取擁有者帳戶 (例如登入、偏好設定或其他用途) 的應用程式,可以透過宣告資訊清單屬性選擇加入,而擁有者則可透過設定檔設定,查看及管理這些應用程式。
對於開發人員而言,受限設定檔可讓您以全新方式為使用者提供更多價值和控制權。您可以實作應用程式限制 (應用程式支援的內容或功能控制項),並在設定檔設定中向平板電腦擁有者宣傳這些限制。
您可以使用預先定義的布林值、選取和多重選取類型,直接在設定檔設定中新增應用程式限制。如要提供更彈性的設定,您甚至可以從設定檔設定中啟動自己的 UI,以便提供任何類型的限制。
當應用程式在設定檔中執行時,可以檢查擁有者設定的任何限制,並適當強制執行這些限制。舉例來說,媒體應用程式可能會提供限制,讓擁有者為設定檔設定成人內容等級。在執行階段,應用程式可以檢查成熟度設定,然後根據偏好的成熟度等級管理內容。
如果您的應用程式並非專為受限設定檔而設計,您可以選擇完全停用,讓應用程式無法在任何受限設定檔中啟用。
最佳化位置和感應器功能
Google Play 服務提供可在應用程式中使用的進階位置 API。Android 4.3 會在支援的裝置上使用新硬體和軟體功能,將這些 API 最佳化,盡量減少電池使用量。
硬體地理柵欄功能會在裝置硬體 (而非軟體) 中執行位置運算,以提升電力效率。在支援硬體地理圍欄的裝置上,Google Play 服務地理圍欄 API 可利用這項最佳化功能,在裝置移動時節省電池電量。
Wi-Fi 掃描專用模式是一種新的平台最佳化功能,可讓使用者在不連線至 Wi-Fi 網路的情況下,開啟 Wi-Fi 掃描功能,藉此提升定位精確度並節省電力。需要使用 Wi-Fi 定位服務的應用程式,現在可以要求使用者從 Wi-Fi 進階設定啟用僅掃描模式。Wi-Fi 僅掃描模式不依賴裝置硬體,且可在 Android 4.3 平台中使用。
新的感應器類型可讓應用程式更妥善地管理感應器讀數。遊戲旋轉向量可讓遊戲開發人員感應裝置的旋轉方向,不必擔心磁性干擾。未校正的陀螺儀和未校正的磁力計感應器會向應用程式回報原始測量值,以及預估偏差。
新的硬體功能已在 Nexus 7 (2013 版) 和 Nexus 4 裝置上推出,任何裝置製造商或晶片組供應商都能將這些功能整合至自家裝置。
新媒體功能
模組化 DRM 架構
為滿足新一代媒體服務的需求,Android 4.3 推出了模組化 DRM 架構,讓媒體應用程式開發人員更輕鬆地將 DRM 整合至自家的串流通訊協定,例如 MPEG DASH (基於 HTTP 的動態自動調整串流,ISO/IEC 23009-1)。
媒體 DRM 架構結合了新 API 和現有 API 的增強功能,提供一組整合服務,用於管理授權和佈建、存取低階編碼器,以及解碼已加密的媒體資料。新的 MediaExtractor API 可讓您取得 DASH 媒體的 PSSH 中繼資料。使用媒體 DRM 架構的應用程式會管理與授權伺服器的網路通訊,並處理內容資料庫中的加密資料串流。
VP8 編碼器
Android 4.3 推出內建的 VP8 編碼支援功能,可透過架構和原生 API 存取。對於使用原生 API 的應用程式,平台會納入 OpenMAX 1.1.2 擴充功能標頭,以支援 VP8 設定檔和層級。VP8 編碼支援包括目標比特率、速率控制、影格速率、符記分割、錯誤復原、重建和迴圈篩選器的設定。平台 API 可支援多種格式的 VP8 編碼器,讓您能充分利用最適合內容的格式。
在執行 Android 4.3 的所有相容裝置上,軟體可支援 VP8 編碼。為達到最高效能,平台也支援在支援的裝置上使用硬體加速 VP8 編碼。
從途徑編碼影片
從 Android 4.3 開始,您可以使用介面做為影片編碼器的輸入內容。舉例來說,您現在可以將流量從 OpenGL ES 途徑導向編碼器,而不需要在緩衝區之間複製。
媒體多路器
應用程式可以使用新的媒體混合器 API,將基本音訊和視訊串流合併為單一輸出檔案。目前應用程式可以將單一 MPEG-4 音訊串流和單一 MPEG-4 視訊串流多重編碼為單一 MPEG-4 輸出檔案。新的 API 與 Android 4.2 中推出的媒體解複合 API 相對應。
在遠端控制器用戶端中顯示播放進度和快速搜尋功能
自 Android 4.0 起,媒體播放器和類似的應用程式便可透過遠端控制用戶端提供播放控制選項,例如裝置鎖定畫面、通知,以及透過藍牙連線的遠端裝置。從 Android 4.3 開始,這些應用程式現在也可以透過遠端控制用戶端公開播放進度和速度,並接收指令,跳到特定播放位置。
建構美觀應用程式的新方法
存取通知
通知一直是 Android 廣受歡迎的功能,因為這項功能可讓使用者在單一位置查看系統中的資訊和更新。在 Android 4.3 中,應用程式可在取得使用者授權後觀察通知串流,並以任何方式顯示通知,包括透過藍牙傳送至附近的裝置。
您可以透過新的 API 存取通知,這些 API 可讓您註冊通知事件監聽器服務,並在使用者授權後,收到狀態列中顯示的通知。系統會完整傳送通知給您,並附上原始應用程式、發布時間、內容檢視畫面和樣式,以及優先順序等詳細資料。您可以評估通知中的感興趣欄位、處理或新增應用程式中的背景資訊,並將這些資訊轉送至您選擇的顯示方式。
新增的 API 會在新增、更新及移除通知 (可能是因為使用者關閉通知,或原始應用程式撤銷通知) 時提供回呼。您可以啟動與通知或其動作相關聯的任何意圖,也可以從系統中關閉通知,讓應用程式為通知提供完整的使用者介面。
使用者仍可控管哪些應用程式可接收通知。使用者隨時可以前往「設定」查看哪些應用程式擁有通知存取權,並視需要啟用或停用存取權。根據預設,通知存取權已停用。應用程式可使用新的 Intent,將使用者直接帶往「設定」頁面,在安裝後啟用事件監聽器服務。
查看重疊層
您現在可以在 View 和 ViewGroup 上方建立透明疊加層,藉此算繪暫時的 View 階層或暫時動畫效果,而不影響底層版面配置階層。當您想要建立動畫時,重疊層特別實用,例如將檢視畫面滑動至其容器外,或是在螢幕上拖曳項目,而不影響檢視畫面階層。
光學邊界版面配置模式
新的版面配置模式可讓您根據 View 的光學邊界 (而非剪輯邊界),管理 ViewGroup 內的 View 位置。剪輯邊界代表小工具的實際外部邊界,而新的光學邊界則描述小工具在剪輯邊界內顯示的位置。您可以使用光學邊界版面配置模式,正確對齊使用外部視覺效果 (例如陰影和發光效果) 的小工具。
自訂旋轉動畫類型
應用程式現在可以定義在裝置旋轉時,視窗所使用的退出和進入動畫類型。您可以設定視窗屬性,啟用跳接、交叉淡出或標準視窗旋轉功能。當視窗處於全螢幕模式且未遭其他視窗覆蓋時,系統會使用自訂動畫類型。
螢幕方向模式
應用程式可以為活動設定新的方向模式,確保在裝置翻轉時,活動能以適當的方向顯示。此外,應用程式可以使用新模式,將螢幕鎖定為目前的方向。這對使用相機的應用程式而言相當實用,因為這些應用程式希望在錄影時停用旋轉功能。
處理快速回覆的意圖
Android 4.3 推出了新的公開意圖,可讓任何應用程式處理快速回覆,也就是使用者在接聽來電時傳送的文字訊息,無須接聽來電或解鎖裝置。應用程式可以監聽意圖,並透過訊息系統將訊息傳送給來電者。意圖包含收件者 (呼叫端) 和訊息本身。
支援國際使用者
由右至左改善項目
Android 4.3 包含 RTL 效能強化功能,以及更廣泛的 RTL 支援功能,適用於各個架構 UI 小工具,包括 ProgressBar/Spinner 和 ExpandableListView。您可以透過 uiautomatorviewer
工具查看更多偵錯資訊。此外,更多系統 UI 元件現在也支援從右到左的語言,例如通知、導覽列和動作列。
為在 RTL 書寫系統中提供更優質的系統層級體驗,現在有更多預設系統應用程式支援 RTL 版面配置,包括啟動器、快速設定、電話、聯絡人、設定精靈、時鐘、下載等。
用於本地化的公用程式
Android 4.3 也包含新的公用程式和 API,可用於建立更優質的 RTL 字串,以及測試本地化 UI。新的 BidiFormatter 類別提供簡單的 API,可用於包裝 Unicode 字串,以便在 LTR 語言代碼訊息中正確顯示 RTL 腳本資料,反之亦然。為了讓您在應用程式中更廣泛地使用這個公用程式,現在也可透過 Android SDK 中的支援套件,為舊版平台提供 BidiFormatter API。
為了協助您管理不同語言代碼的日期格式,Android 4.3 包含新的 getBestDateTimePattern() 方法,可自動為您指定的語言代碼自動產生最佳的萬國碼 UTS 日期本地化形式。這是為使用者提供更本地化的體驗的方便方式。
為協助您更輕鬆地在其他語言代碼中測試應用程式,Android 4.3 推出了假語言代碼,做為新的開發人員選項。偽造語系會模擬與語系或語言群組相關的語言、字母和顯示特性。目前,您可以使用 Accented English 的假設語言代碼進行測試,瞭解使用者介面如何處理各種歐洲語言所使用的書寫重音和字元。
無障礙功能和 UI 自動化
從 Android 4.3 開始,無障礙服務可以觀察及篩選按鍵事件,例如處理鍵盤快速鍵,或提供與手勢輸入相同的導覽功能。服務會接收事件,並在將事件傳送至系統或其他已安裝的應用程式前,視需要處理這些事件。
無障礙服務可以宣告新的功能屬性,說明服務可執行的功能和使用的平台功能。舉例來說,這些類別可以宣告篩選按鍵事件、擷取視窗內容、啟用觸控探索功能,或啟用網頁無障礙功能的功能。在某些情況下,服務必須先宣告功能屬性,才能存取相關的平台功能。系統會使用服務的功能屬性,為使用者產生選擇加入對話方塊,讓他們在啟動前查看並同意這些功能。
新的 UI 自動化架構以 Android 4.3 中的無障礙架構為基礎,可模擬使用者操作並檢視螢幕內容,讓測試與裝置的 UI 互動。您可以透過 UI 自動化架構執行基本作業、設定螢幕旋轉、產生輸入事件、擷取螢幕畫面等。這是在實際使用情境中自動化測試的強大方法,包括跨多個應用程式的動作或序列。
企業和安全性
WPA2 Enterprise 網路的 Wi-Fi 設定
應用程式現在可以設定連線至 WPA2 企業存取點所需的 Wi-Fi 憑證。開發人員可以使用新的 API 為企業使用的驗證方法,設定加強式驗證通訊協定 (EAP) 和封裝式 EAP (第 2 階段) 憑證。具有存取及變更 Wi-Fi 權限的應用程式,可以為各種 EAP 和第 2 階段驗證方法設定驗證憑證。
使用 SELinux 強化 Android 沙箱
Android 現在使用 SELinux,這是 Linux 核心中的強制存取控制 (MAC) 系統,可擴充以 UID 為基礎的應用程式沙箱。這麼做可防範作業系統的潛在安全漏洞。
KeyChain 強化功能
KeyChain API 現在提供一種方法,可讓應用程式確認系統層級金鑰已繫結至裝置的硬體信任根。這可提供一個位置來建立或儲存私密金鑰,這些金鑰無法匯出至裝置外,即使在根目錄或核心遭到入侵的情況下也是如此。
Android KeyStore 供應器
Android 4.3 推出了金鑰庫供應器和 API,可讓應用程式建立專用金鑰。應用程式可使用 API 建立或儲存私密金鑰,這些金鑰無法供其他應用程式查看或使用,且可在無任何使用者互動情況下加入金鑰庫。
金鑰庫供應器提供的安全性優勢,與 KeyChain API 為全系統憑證提供的相同,例如將憑證繫結至裝置。無法從裝置匯出金鑰庫中的私密金鑰。
限制 Android 應用程式中的 Setuid
/system
分區現在已為 zygote 產生的程序掛載 nosuid
,可防止 Android 應用程式執行 setuid
程式。這麼做可減少根層級攻擊面,並降低潛在安全漏洞的可能性。
分析成效的新方法
強化 Systrace 記錄功能
Android 4.3 支援經過強化的 Systrace 工具,這項工具更容易使用,可讓您存取更多類型的資訊,以便分析應用程式的效能。現在,您可以從硬體模組、核心函式、Dalvik VM (包括垃圾收集、資源載入等) 收集追蹤記錄資料。
Android 4.3 也包含新的 Trace API,可用於在應用程式中標示要使用 Systrace 開始/結束事件追蹤的特定程式碼區段。當標示的程式碼區塊執行時,系統會將開始/結束事件寫入追蹤記錄。這對應用程式效能影響極小,因此您可以透過回報的時間,準確掌握應用程式執行的作業。
您可以在 Systrace 輸出檔案的時間軸中,以視覺化方式呈現應用程式專屬事件,並在其他核心和使用者空間追蹤資料的背景下分析事件。搭配現有的 Systrace 標記,您可以透過自訂應用程式區段,以全新方式瞭解應用程式的效能和行為。
畫面上的 GPU 剖析
Android 4.3 新增了開發人員選項,可協助您分析應用程式的效能,並找出任何裝置或模擬器的轉譯問題。
在「剖析 GPU 轉譯」選項中,您現在可以在應用程式執行期間,在畫面上以圖形化方式呈現應用程式的有效影格速率。您可以選擇以螢幕上的長條或折線圖顯示剖析資料,其中顏色代表建立繪圖指令 (藍色)、發出指令 (橘色) 和等待指令完成 (黃色) 所花費的時間。系統會持續更新畫面上的圖表,為每個可見的活動顯示圖表,包括導覽列和通知列。
綠色線會標示出轉譯作業的 16 毫秒門檻,方便您評估應用程式相對於 60 fps 目標的實際影格速率 (因為 1/60 秒大約等於 16 毫秒)。如果您發現有跨越綠線的作業,可以使用 Systrace 和其他工具進一步分析。
在搭載 Android 4.2 以上版本的裝置上,開發人員選項會預設為隱藏。只要在任何相容的 Android 裝置上依序輕觸「設定」>「關於手機」>「版本號碼」 7 次,即可隨時顯示這些資訊。
針對檔案 URI 顯示的 StrictMode 警告
StrictMode 工具最近新增的政策限制,可在應用程式將 file://
URI 公開給系統或其他應用程式時發出警告。在某些情況下,接收應用程式可能無法存取 file://
URI 路徑,因此在應用程式之間分享檔案時,應使用 content://
URI (並附上適當的權限)。這項新政策有助於找出並修正這類情況。如果您想以方便的方式儲存檔案並將檔案提供給其他應用程式,請嘗試使用 支援資料庫中的 FileProvider
內容供應器。
Android 4.2
歡迎使用最新版的 Jelly Bean Android 4.2!
Android 4.2 提供效能最佳化、全新的系統 UI,以及許多實用的全新功能,可供使用者和開發人員使用。本文件將概略介紹開發人員的新功能。
如要進一步瞭解新的開發人員 API,請參閱「Android 4.2 API」說明文件。
如要進一步瞭解 Jelly Bean 的新功能,請前往 www.android.com。
更快速、更流暢、更即時
Android 4.2 以 Jelly Bean 中已納入的效能改善功能為基礎,包括 vsync 時間、三重緩衝、減少觸控延遲和 CPU 輸入提升,並加入新的最佳化功能,讓 Android 速度更快。
硬體加速 2D 轉譯器的改良功能,可讓捲動和滑動等常見動畫更流暢、更快速。特別是,繪圖已針對圖層、裁剪和特定形狀 (圓角矩形、圓形和橢圓形) 進行最佳化。
我們推出多項 WebView 轉譯最佳化功能,讓網頁捲動更加順暢,且不會出現抖動和延遲現象。
Android 的 Renderscript Compute 是第一個直接在行動裝置 GPU 上執行的運算平台。它會盡可能自動利用 GPU 運算資源,大幅改善圖像和圖片處理效能。在支援的裝置上,任何使用 Renderscript 的應用程式都能立即從這項 GPU 整合功能中受益,且無需重新編譯。
精緻、更新的使用者介面
Android 4.2 可提供更精緻的 Jelly Bean 使用者體驗,並為所有平板電腦提供熟悉的 Android UI 模式,例如狀態列、系統列和通知視窗。
所有螢幕尺寸現在都會在頂端顯示狀態列,您可以向下滑動存取通知,以及新的「快速設定」選單。熟悉的系統列會顯示在底部,方便使用者用左右手輕鬆存取按鈕。應用程式匣也適用於所有螢幕大小。
一台平板電腦,多位使用者
如今,多位使用者可以共用單一 Android 平板電腦,每位使用者都能輕鬆存取專屬使用者空間。使用者只要在鎖定畫面上輕觸一下,即可切換至所需的空間。
在多使用者裝置上,Android 會為每位使用者提供個別環境,包括使用者專屬的模擬 SD 卡儲存空間。使用者也擁有各自的主畫面、小工具、帳戶、設定、檔案和應用程式,系統會將這些項目分開。所有使用者都會共用核心系統服務,但系統會確保每位使用者的應用程式和資料保持隔離。也就是說,每位使用者都有自己的 Android 裝置。
使用者可以在自己的環境中隨時安裝及解除安裝應用程式。為節省儲存空間,Google Play 只會在其他使用者尚未在裝置上安裝 APK 時,下載 APK。如果應用程式已安裝,Google Play 會以一般方式記錄新使用者的安裝作業,但不會下載另一個應用程式副本。由於系統會為每位使用者建立新的例項 (包括使用者專屬資料目錄),因此多位使用者可以執行相同的 APK 副本。
對於開發人員而言,多用戶支援功能是透明的,也就是說,應用程式無須執行任何特殊操作,即可在多用戶環境中正常運作,也不需要在現有或已發布的 APK 中進行任何變更。系統會在每個使用者空間中管理您的應用程式,就像在單一使用者環境中一樣。
與使用者互動的新方式
螢幕鎖定小工具
在 Android 4.2 中,使用者可以直接將應用程式小工具放在鎖定畫面上,無須解鎖即可立即存取喜愛的應用程式內容。使用者最多可新增五個螢幕鎖定畫面小工具,可從已安裝應用程式提供的小工具中選擇。螢幕鎖定畫面會在各自的面板中顯示每個小工具,讓使用者向左向右滑動查看不同的面板和小工具。
就像所有應用程式小工具一樣,鎖定畫面小工具可以顯示任何類型的內容,並且可以接受使用者的直接互動。這些小工具可以完全獨立運作,例如提供音樂播放控制項的小工具,也可以讓使用者在解鎖後,直接前往應用程式中的活動,或在需要時解鎖。
對於開發人員而言,螢幕鎖定小工具是吸引使用者的絕佳新方式。您可以將內容放在使用者經常瀏覽的位置,讓他們看到您的內容,並有機會將使用者直接帶往應用程式。
您可以建構新的應用程式小工具,或擴充現有的主畫面小工具,充分利用這項新功能。如果您的應用程式已包含主畫面小工具,您可以將這些小工具擴展至螢幕鎖定畫面,只需進行微幅調整即可。為了提供最佳使用體驗,您可以更新小工具,讓其在可用時使用整個鎖定畫面區域,並在需要時調整大小,以便在較小的螢幕上顯示。您也可以為小工具新增功能,讓使用者在鎖定螢幕上享有更實用或便利的體驗。
Daydream
Daydream 是一種互動式螢幕保護程式模式,會在使用者的裝置連結至基座或充電時啟動。在這個模式下,系統會啟動 Daydream (由已安裝應用程式提供的遠端內容服務),做為裝置的螢幕保護程式。使用者可以透過「設定」應用程式啟用 Daydream,然後選擇要顯示的 Daydream。
Daydreams 結合了動態桌布和主畫面小工具的最佳功能,但功能更強大。您可以在全新的背景中提供任何類型的內容,並提供使用者互動功能,例如翻閱相片、播放音訊或影片,或是只要輕觸一下即可直接前往應用程式。
由於 Daydream 可以在裝置充電或連結至電腦時自動啟動,因此可讓應用程式以新穎的方式支援使用者體驗,例如 leanback 或展覽模式、示範或資訊站模式,以及「吸引模式」等,而且不需要特殊硬體。
Daydream 與活動類似,可執行活動可執行的任何操作,從轉譯 UI 階層 (不使用 RemoteViews) 到直接使用 Canvas、OpenGL、SurfaceTexture 等繪圖皆可。可播放影片和音訊,甚至可接受使用者的直接互動。不過,Daydream 並非活動,因此不會影響回溯堆疊或顯示在「近期」中,也無法直接從應用程式啟動。
實作 Daydream 非常簡單,您可以利用為應用程式其他部分建立的 UI 元件和資源。您可以在應用程式中提供多個 Daydream,並為每個 Daydream 提供不同的內容和顯示設定。
外接螢幕支援
Android 4.2 推出了外接螢幕平台支援功能,可用於鏡像顯示,應用程式現在可以將獨特內容指定給連接至 Android 裝置的任何一個或多個螢幕。應用程式可利用這項功能,為使用者提供全新的互動和娛樂體驗。
顯示管理工具
應用程式會透過新的顯示器管理員系統服務與螢幕互動。應用程式可以列舉螢幕並檢查每個螢幕的功能,包括大小、密度、顯示名稱、ID、安全影片支援功能等等。應用程式也可以在新增或移除螢幕,或螢幕功能變更時接收回呼,以便更妥善地管理外接螢幕上的內容。
分享螢幕畫面視窗
為了讓您輕鬆在外接螢幕上顯示內容,此架構提供了名為「Presentation」的新 UI 物件。此類對話方塊可在特定外接螢幕上代表應用程式內容的視窗。您的應用程式只提供要使用的螢幕、視窗主題,以及要顯示的任何獨特內容。簡報會根據指定螢幕的特徵,處理資源的擴充作業,並轉譯您的內容。
透過簡報,應用程式可全面控制遠端顯示視窗及其內容,並根據使用者輸入事件 (例如按鍵動作、手勢、動作事件等) 管理這些內容。您可以使用所有一般工具,在簡報中建立 UI 並轉譯內容,從建構任意檢視階層,到使用 SurfaceView 或 SurfaceTexture 直接繪製流式內容或相機預覽畫面。
偏好的顯示選項
當有多個外接螢幕可用時,您可以視需要建立多個簡報,每個簡報都會在特定螢幕上顯示獨特內容。在許多情況下,您可能只想在單一外接螢幕上顯示內容,但請務必選擇最適合展示內容的螢幕。為此,系統可協助應用程式選擇最合適的顯示介面。
為了找出最適合的螢幕,應用程式可以向螢幕管理員查詢系統的偏好呈現螢幕,並在螢幕變更時接收回呼。或者,您也可以使用在 Android 4.2 中擴充的媒體路由器服務,在系統視訊路徑變更時接收通知。根據預設,應用程式會在主要活動中顯示內容,直到連結至首選的簡報螢幕為止,此時應用程式會自動切換至首選螢幕上的簡報內容。應用程式也可以使用媒體路由器的 MediaRouteActionProvider 和 MediaRouteButton,提供標準的顯示選項 UI。
受保護的內容
對於處理受保護或加密內容的應用程式,現在的顯示 API 會回報已連結螢幕的安全影片功能。應用程式會查詢螢幕,找出螢幕是否提供安全的影片輸出或提供受保護的圖形緩衝區,然後選擇適當的內容串流或解碼,讓內容可供觀看。為進一步強化 SurfaceView 物件的安全性,應用程式可以設定安全標記,指出內容絕不應顯示在螢幕截圖或不安全的螢幕輸出中,即使是鏡像輸出也不例外。
無線螢幕分享
自 Android 4.2 起,使用支援的裝置時,可透過 Wi-Fi 顯示功能 (符合 Miracast™ 認證計畫的點對點無線顯示解決方案),使用 Wi-Fi 連線至外接螢幕。無線螢幕連線後,使用者就能將任何類型的內容串流至大螢幕,包括相片、遊戲、地圖等。
應用程式可以利用無線螢幕,就像使用其他外接螢幕一樣,不需要額外操作。系統會管理網路連線,並視需要將簡報或其他應用程式內容串流至無線螢幕。
原生 RTL 支援
Android 4.2 推出了完整的 RTL 原生支援服務 (由右至左) 版面配置,包括版面配置鏡像。有了原生 RTL 支援功能,您就能為所有使用者提供相同的優質應用程式體驗,無論他們使用的語言是從右至左或從左至右的書寫系統。
當使用者將系統語言切換為從右至左書寫的文字時,系統現在會自動鏡射應用程式 UI 版面配置和所有檢視畫面小工具,並為讀取和字元輸入的文字元素提供從右至左鏡像畫面。
應用程式可以輕鬆利用 RTL 版面配置鏡像功能。如果您想要鏡像應用程式,只需在應用程式資訊清單中宣告新的屬性,並將所有「左/右」版面配置屬性變更為新的「開始/結束」等效值。系統會視情況處理 UI 的鏡像和顯示作業。
為精確控管應用程式 UI,Android 4.2 包含新的 API,可讓您在 View 元件中管理版面配置方向、文字方向、文字對齊方式、重力和語言代碼方向。您甚至可以建立自訂版面的版面配置、可繪項目和其他資源,以便在使用從右到左的腳本時顯示。
為協助您對自訂的右至左版面配置進行偵錯及最佳化,HierarchyViewer 工具現在可讓您查看階層中所有 View 的開始/結束屬性、版面配置方向、文字方向和文字對齊方式。
國際語言強化功能
Android 4.2 為國際使用者提供多種字型和字元最佳化功能:
- 韓國使用者可選擇新的字型:Nanum (나눔글꼴) Gothic,這是專為韓文語系設計的萬國碼字型。
- 改善 WebView 中顯示的日文直向文字支援功能。
- 改善印度文、泰文、阿拉伯文和希伯來文預設字型的字型間距和位置。
預設的 Android 鍵盤也包含一組更新的字典:
- 改善法文 (支援大字詞)、英文和俄文的字典
- 新增丹麥文、希臘文、芬蘭文、立陶宛文、拉脫維亞文、波蘭文、斯洛維尼亞文、塞爾維亞文、瑞典文、土耳其文的字典
打造精美 UI 的新方法
巢狀 Fragment
為進一步控管 UI 元件並使其更具模組化,Android 4.2 可讓您在片段內巢狀結構片段。對於任何片段,新的 Fragment 管理工具可讓您在 View 階層中插入其他片段做為子項節點。
您可以以多種方式使用巢狀 Fragment,但在本身為動態且可重複使用的 UI 元件中,巢狀 Fragment 特別適合用於實作動態且可重複使用的 UI 元件。舉例來說,如果您使用 ViewPager 建立可左右滑動的片段,現在可以將片段插入 ViewPager 的每個 Fragment。
為讓您在應用程式中更廣泛地運用巢狀的 Fragment,這項功能已新增至最新版的 Android 支援資料庫。
無障礙設定
系統現在可在觸控探索模式下,協助無障礙服務區分觸控探索和無障礙手勢。使用者輕觸螢幕時,系統會通知服務已開始一般觸控互動。接著,系統會追蹤觸控互動的速度,並判斷該動作是觸控探索 (速度較慢) 還是無障礙手勢 (速度較快),然後通知服務。觸控互動結束後,系統會通知服務。
系統提供新的全域無障礙選項,讓無障礙服務根據使用者動作開啟快速設定選單。Android 4.2 也新增了適用於 Braille 裝置的新無障礙回饋類型。
為了讓無障礙服務瞭解 View 的含義,以便提供無障礙服務,架構提供了新的 API,可將 View 連結為另一個 View 的標籤。每個 View 的標籤可透過 AccessibilityNodeInfo 提供給無障礙服務。
相機功能強化,支援 HDR
Android 4.2 推出新的相機硬體介面和管道,以提升效能。在支援的裝置上,應用程式可以使用新的 HDR 相機場景模式,透過高動態範圍成像技術拍攝圖片。
此外,該架構現在提供 API,讓應用程式檢查是否可以停用相機快門聲。應用程式可讓使用者停用聲響,或選擇取代標準快門聲的其他聲響 (建議採用這種做法)。
Renderscript 運算
在 Android 4.2 中,Renderscript Compute 推出了新的指令碼功能、新最佳化功能和直接 GPU 整合功能,可在運算作業中發揮最高效能。
Filterscript
Filterscript 是 Renderscript 的子集,專注於在各種裝置晶片組中進行最佳化圖像處理。開發人員可以使用標準 Renderscript 執行階段 API 在 Filterscript 中編寫圖像處理作業,但必須在更嚴格的限制下進行,以確保在 CPU、GPU 和 DSP 之間提供更廣泛的相容性和更佳的最佳化。
Filterscript 非常適合用於硬體加速簡單的圖像處理和運算作業,例如可能為 OpenGL ES 片段著色器編寫的作業。由於硬體的限制條件較少,因此可在更多類型的裝置晶片組上進行最佳化及加速作業。任何指定 API 級別 17 以上版本的應用程式,都可以使用 Filterscript。
指令碼內建函式
在 Android 4.2 中,Renderscript 新增了對一組指令碼內建項目的支援,也就是預先實作的已加速的篩選基本元素,可減少您需要編寫的程式碼數量,並確保應用程式可獲得最佳效能。
內建值可用於混合、模糊、色彩矩陣、3x3 和 5x5 卷積、每個管道的查詢表,以及將 Android YUV 緩衝區轉換為 RGB。
指令碼群組
您現在可以建立Renderscript 指令碼群組,並透過單一呼叫執行所有指令碼,就像是單一指令碼的一部分一樣。這樣一來,Renderscript 就能以單獨執行指令碼時無法達到的做法,最佳化指令碼的執行方式。
在 Galaxy Nexus 裝置上,僅在 CPU 中以不同的 Android 平台版本 (Android 4.0、4.1 和 4.2) 執行 Renderscript 圖片處理基準測試。
在同一台 Nexus 10 裝置上,比較使用 GPU 和 CPU 執行的作業與僅使用 CPU 執行的作業,以進行 Renderscript 圖像處理基準測試。
如果您要執行的 Renderscript 作業為有向非循環圖,可以使用建構器類別建立定義作業的指令碼群組。在執行期間,Renderscript 會最佳化執行順序和這些作業之間的連結,以便達到最佳效能。
持續改善最佳化
當您使用 Renderscript 進行運算作業時,應用程式就能從 Renderscript 引擎本身的持續效能和最佳化改善中受益,且不會對應用程式程式碼造成任何影響,也不需要重新編譯。
隨著最佳化功能的改善,您的作業執行速度會加快,且可在更多晶片組上執行,而您不必採取任何行動。右側圖表強調了在 Android 平台的後續版本中,持續改善 Renderscript 最佳化功能所帶來的效能提升。
GPU 運算
Renderscript Compute 是第一個可直接在行動裝置 GPU 上執行的運算平台。系統現在會自動盡可能利用 GPU 運算資源來改善效能。透過 GPU 整合,即使是圖形或圖像處理的複雜運算,也能以大幅提升的效能執行。
在支援的裝置上,任何使用 Renderscript 的應用程式都能立即從這項 GPU 整合作業中受益,無需重新編譯。Nexus 10 平板電腦是第一款支援這項整合功能的裝置。
新的內建開發人員選項
Android 4.2 系統包含多種新的開發人員選項,可讓您更輕鬆地打造外觀出眾、效能良好的應用程式。新的選項會公開功能,讓您從任何裝置或模擬器偵錯及剖析應用程式。
在搭載 Android 4.2 的裝置上,開發人員選項會預設為隱藏,有助於為使用者提供更優質的體驗。您隨時可以透過任何相容的 Android 裝置,依序輕觸「設定」 >「關於手機」 >「版本號碼」 7 次,即可顯示開發人員選項。
Android 4.2 中的新開發人員選項包括:
- 取得錯誤報告:立即擷取螢幕截圖,並將裝置狀態資訊轉存至本機檔案儲存空間,然後將這些資訊附加到新的傳出電子郵件訊息。
- 電源鍵選單錯誤報告:在裝置電源鍵選單和快速設定中新增取得錯誤報告的選項 (請參閱上方說明)。
- 透過 USB 驗證應用程式:可讓您停用透過 USB 側載應用程式的應用程式檢查功能,同時仍檢查瀏覽器等其他來源的應用程式。這樣一來,您就能在啟用安全性功能的情況下加快開發流程。
- 顯示硬體層更新:在硬體層更新時閃綠燈。
- 顯示 GPU 重複繪圖:醒目顯示 GPU 重複繪圖區域。
- 強制 4x MSAA:在 Open GL ES 2.0 應用程式中啟用 4x MSAA。
- 模擬次要顯示器:在目前畫面上建立一或多個非安全疊加視窗,用於模擬遠端顯示器。您可以控制模擬顯示畫面的大小和密度。
- 啟用 OpenGL 追蹤記錄:讓您使用 Logcat、Systrace 或 glGetError 的呼叫堆疊追蹤 OpenGL 執行作業。
新平台技術
Android 4.2 包含多種新技術和強化平台技術,可支援各種硬體裝置的創新通訊用途。在大多數情況下,新平台技術和強化功能不會直接影響您的應用程式,因此您不必進行任何修改,就能享有這些技術帶來的好處。
安全性增強項目
每個 Android 版本都包含數十項安全性強化功能,可保護使用者。以下是 Android 4.2 的部分強化功能:
- 應用程式驗證:使用者可以選擇啟用「驗證應用程式」功能,並在安裝前由應用程式驗證工具篩選應用程式。如果使用者嘗試安裝可能有害的應用程式,應用程式驗證功能就會發出警示;如果應用程式特別糟糕,系統會封鎖安裝作業。
- 進一步控管付費簡訊:如果應用程式嘗試傳送簡訊至使用付費服務的簡碼,可能會產生額外費用,Android 會提供通知。使用者可以選擇是否允許應用程式傳送訊息或封鎖訊息。
- 永久連線 VPN:您可以設定 VPN,讓應用程式在建立 VPN 連線前無法存取網路。這麼做可避免應用程式透過其他網路傳送資料。
- 憑證固定:libcore SSL 實作現在支援憑證固定。如果憑證未鏈結至一組預期的憑證,已固定的網域會收到憑證驗證失敗的通知。這可防範憑證授權單位遭到入侵。
- 改善 Android 權限的顯示方式:權限已分組,方便使用者瞭解。在審查權限期間,使用者可以按一下權限,查看權限的詳細資訊。
- 強化 installd 安全性:installd 守護程序不會以 root 使用者身分執行,從而減少 root 權限提升的潛在攻擊面。
- 強化初始化指令碼:初始化指令碼現在會套用 O_NOFOLLOW 語義,以防範符號連結相關攻擊。
- FORTIFY_SOURCE:Android 現在會實作 FORTIFY_SOURCE。系統程式庫和應用程式會使用這個值,以防記憶體損毀。
- ContentProvider 預設設定:針對 API 級別 17 為目標的應用程式,每個 ContentProvider 的「export」預設值為「false」,可減少應用程式的預設攻擊面。
- 密碼編譯:修改 SecureRandom 和 Cipher.RSA 的預設實作方式,以便使用 OpenSSL。使用 OpenSSL 1.0.1 新增 TLSv1.1 和 TLSv1.2 的 SSLSocket 支援
- 安全性修正:已升級的開放原始碼程式庫包含 WebKit、libpng、OpenSSL 和 LibXML 的安全性修正項目。Android 4.2 也包含 Android 專屬安全漏洞的修正項目。我們已將這些安全漏洞的相關資訊提供給開放手持裝置聯盟成員,並在 Android 開放原始碼計畫中提供修正程式。為提升安全性,部分搭載舊版 Android 的裝置也可能包含這些修正項目。
新的藍牙堆疊
Android 4.2 推出了新的 Bluetooth 堆疊,可配合 Android 裝置使用。Google 與 Broadcom 合作開發的新藍牙堆疊取代了以 BlueZ 為基礎的堆疊,並提供更佳的相容性和可靠性。低延遲音訊
Android 4.2 改善了對低延遲音訊播放的支援,從 Android 4.1 版本開始,使用 OpenSL ES、Soundpool 和音訊產生器 API 改善音訊輸出延遲時間。這些改善取決於硬體支援功能,提供低延遲音訊功能的裝置可透過硬體功能常數向應用程式宣傳支援功能。我們提供新的 AudioManager API,可查詢原生音訊取樣率和緩衝區大小,供支援這項功能的裝置使用。
全新相機硬體介面
Android 4.2 推出了全新的相機堆疊實作方式。攝影機子系統包含攝影機管道中元件的實作項目,例如連拍模式拍攝和處理控制項。新的 NFC 硬體介面和控制器介面
Android 4.2 推出了支援 NFC-Forum NCI 標準的控制器。NCI 在 NFC 控制器 (NFCC) 和裝置主機之間提供標準通訊協定,而 Google 與 Broadcom 合作開發的新 NFC 堆疊也支援 NCI。Dalvik 執行階段最佳化
Dalvik 執行階段包含了針對效能和安全性,在更廣泛的架構中進行的強化功能:
- Intel 提供 x86 JIT 支援,MIPS 提供 MIPS JIT 支援
- 針對記憶體超過 512MB 的裝置提供最佳化垃圾收集參數
- SecureRandom 和 Cipher.RSA 的預設實作方式現在使用 OpenSSL
- 透過 OpenSSL 1.0.1 支援 TLSv1.1 和 TLSv1.2 的 SSLSocket
- 新增對 StrictMath 方法 abs、min、max 和 sqrt 的內在支援
- BouncyCastle 已更新至 1.47
- zlib 已更新至 1.27
- dlmalloc 已更新至 2.8.6
Android 4.1
歡迎使用 Android 4.1 (Jelly Bean) 第一版!
Android 4.1 是目前速度最快、運作最順暢的 Android 版本。我們改善了整個平台,並為使用者和開發人員新增了許多實用的新功能。本文將簡要介紹開發人員的最新消息。
如要進一步瞭解新的開發人員 API,請參閱「Android 4.1 API」說明文件。
如要進一步瞭解 Jelly Bean 的使用者功能,請前往 www.android.com。
更快速、更流暢、更即時
Android 4.1 經過最佳化,可提供 Android 最佳效能和最短觸控延遲時間,並提供簡單直覺的使用者介面。
為確保幀率一致,Android 4.1 會在 Android 架構執行的所有繪圖和動畫中延長 vsync 時間。所有動作都會以 16 毫秒的 vsync 心跳率同步執行,包括應用程式算繪、觸控事件、螢幕組合和螢幕刷新,因此不會有影格超前或落後的情形。
Android 4.1 也新增了圖形管道中的三重緩衝功能,可提供更一致的轉譯效果,讓捲動、分頁和動畫等操作都更流暢。
Android 4.1 除了同步觸控與 vsync 時機,還會實際預測手指在螢幕重新整理時的位置,藉此縮短觸控延遲時間。這可讓觸控回應更即時且一致。此外,在一段時間未使用後,Android 會在下一個觸控事件時套用 CPU 輸入加速,確保不會有延遲。
工具可協助您充分發揮應用程式的效能。Android 4.1 可搭配新的 systrace 工具使用,該工具可直接從 Linux 核心收集資料,產生系統活動的整體圖表。資料會以一組垂直堆疊的時間序列圖表表示,以便隔離轉譯中斷和其他問題。這項工具現已在 Android SDK 中提供 (Tools R20 以上版本)
強化無障礙功能
無障礙服務的新 API 可讓您處理手勢,並在使用者使用無障礙手勢、配件和其他輸入方式瀏覽畫面元素和導覽按鈕時,管理無障礙焦點。Talkback 系統和探索功能已重新設計,以便使用無障礙焦點,讓使用者更輕鬆操作,並為開發人員提供完整的 API 套件。
無障礙服務可以將自家的教學課程連結至無障礙設定,協助使用者設定及使用服務。
使用標準 View 元件的應用程式會自動繼承新的無障礙功能支援,無需變更程式碼。使用自訂檢視區塊的應用程式可以使用新的無障礙節點 API,指出無障礙服務感興趣的檢視區塊部分。
支援國際使用者
雙向文字和其他語言支援
Android 4.1 支援 TextView 和 EditText 元素中的雙向文字,可協助您觸及更多使用者。應用程式可以以從左到右或從右到左的腳本顯示文字,或處理文字編輯作業。應用程式可以使用新的阿拉伯文和希伯來文語言代碼,以及相關字型。
其他類型的新語言支援功能包括:
- 其他印度文:卡納達文、泰盧固文和馬拉雅拉姆文
- Unicode 6.0 版的新表情符號
- 為日文使用者提供更完善的字符支援 (在系統語言設為日文時,會轉譯日文專用的字符)
- 除了 TextView 的阿拉伯字形外,也針對 WebView 最佳化的阿拉伯字形
- WebView 中的直書文字支援功能,包括 Ruby 文字和其他直書文字字形
- 所有沒有專屬粗體字形的字型現在都能使用合成粗體
使用者可安裝的按鍵對應配置
平台現在支援可供使用者安裝的鍵盤對應表,例如其他國際鍵盤和特殊版面配置類型。根據預設,Android 4.1 包含 27 個國際鍵盤對應配置,包括 Dvorak 鍵盤。使用者連接鍵盤後,可以前往「設定」應用程式,選取要用於該鍵盤的一或多個按鍵對應配置。在輸入時,使用者可以使用快速鍵 (Ctrl + Space) 切換鍵盤配置。
您可以建立應用程式,將其他鍵盤映射發布至系統。APK 會根據標準 Android 按鍵對應配置格式,納入鍵盤版面配置資源。應用程式可在資訊清單中宣告適合 ACTION_QUERY_KEYBOARD_LAYOUTS 的廣播接收器,為使用者提供其他鍵盤版面配置。
打造精美 UI 的新方法
可展開的通知
通知一直是 Android 獨有的熱門功能。開發人員可以使用這些通知,在應用程式的一般 UI 外,透過通知列向使用者顯示重要或時間相關資訊。
Android 4.1 為 Android 通知架構帶來重大更新。應用程式現在可以向使用者顯示更大、更豐富的通知,使用者可以透過捏合或滑動來展開和收合通知。通知支援新類型的內容 (包括相片),可設定優先順序,甚至可包含多個動作。
透過改良的通知建構工具,應用程式可以建立使用較大區域的通知,高度可達 256 dp。您可以使用三種範本通知樣式:
- BigTextStyle:包含多行 TextView 物件的通知。
- BigInboxStyle:顯示任何類型清單的通知,例如訊息、標題等。
- BigPictureStyle:顯示圖形內容 (例如位圖) 的通知。
除了範本樣式之外,您也可以使用任何遠端 View 建立自訂通知樣式。
應用程式最多可在通知中加入三個動作,這些動作會顯示在通知內容下方。使用者可以透過其他方式回應通知中的資訊,例如透過電子郵件或電話,而無須前往應用程式。
透過可展開式通知,應用程式就能輕鬆地依需求向使用者提供更多資訊。使用者可以保有控制權,只要長按任何通知,即可取得寄件者的相關資訊,並視需要停用應用程式的後續通知。
可調整大小的應用程式小工具
Android 4.1 推出了改良版的應用程式小工具,可根據使用者將小工具放置在主畫面的位置、使用者展開小工具的大小,以及主畫面可用的空間量,自動調整大小。新的 App Widget API 可讓您在小工具大小變更時,最佳化應用程式小工具內容。
當小工具變更大小時,系統會通知主機應用程式的小工具供應器,後者可視需要重新載入小工具中的內容。舉例來說,小工具可以顯示更大、更豐富的圖形,或是額外的功能或選項。開發人員仍可控制最大和最小尺寸,並視需要更新其他小工具選項。
您也可以為小工具提供獨立的橫向和直向版面配置,系統會在螢幕方向變更時適當地加載這些版面配置。
應用程式小工具現在可透過新的繫結意圖 (AppWidgetManager.ACTION_APPWIDGET_BIND) 顯示在第三方啟動器和其他主機應用程式中。
簡化工作導覽
在 Android 4.1 中,您可以輕鬆管理使用者在應用程式中可用的「向上」導覽功能,並確保使用者享有一致的體驗。
您可以在應用程式的資訊清單檔案中新增 XML 屬性,為 UI 的個別活動元件定義預期的向上導覽。在執行階段,當活動啟動時,系統會從資訊清單檔案中擷取向上導覽樹狀結構,並自動在動作列中建立向上操作元素導覽功能。在資訊清單中宣告向上導覽的開發人員,不再需要在執行階段透過回呼管理導覽,但如有需要,也可以這麼做。
此外,我們也推出了新的 TaskStackBuilder 類別,可讓您快速組合合成工作堆疊,以便立即啟動或在從 PendingIntent 啟動活動時使用。當使用者從遠端檢視畫面 (例如主畫面小工具和通知) 啟動活動時,建立合成工作堆疊特別實用,因為這可讓開發人員在返回導覽時提供受控且一致的體驗。
為活動啟動作業提供簡易動畫
您可以使用新的輔助類別 ActivityOptions,建立及控管啟動活動時顯示的動畫。您可以透過輔助程式類別,指定在啟動活動時要使用的自訂動畫資源,或是要求新的縮放動畫,從您在畫面上指定的任何矩形開始,並視需要加入縮圖點陣圖。
切換至無光和全螢幕模式
View 中的新系統 UI 標記可讓您從一般應用程式 UI (顯示動作列、導覽列和系統列) 轉換至「無光模式」(隱藏狀態列和動作列,並將導覽列設為灰階) 或「全螢幕模式」(隱藏狀態列、動作列和導覽列)。
可遠端操作的新類型檢視畫面
開發人員現在可以在主畫面小工具和通知中使用 GridLayout 和 ViewStub 檢視畫面。GridLayout 可讓您以較淺的 UI 階層,建構遠端檢視區塊的內容,並管理子檢視區塊的對齊方式。ViewStub 是大小為零的隱藏檢視區塊,可用於在執行階段延後加載版面配置資源。
動態桌布預覽
Android 4.1 可讓使用者更輕鬆地從支援動態桌布的應用程式中尋找及安裝動態桌布。如果您的應用程式包含動態桌布,您現在可以啟動活動 (ACTION_CHANGE_LIVE_WALLPAPER),向使用者顯示自家應用程式中的動態桌布預覽畫面。使用者可以從預覽畫面直接載入動態桌布。
更高解析度的聯絡人相片
在 Android 4.1 中,您可以儲存聯絡人相片,尺寸可達 720 x 720,讓聯絡人資訊更豐富、更貼近個人需求。應用程式可以儲存及擷取聯絡人相片,並使用該尺寸或任何其他所需尺寸。特定裝置支援的相片最大大小可能不盡相同,因此應用程式應在執行期間查詢內建的聯絡人提供者,以取得目前裝置的相片最大大小。
新的輸入類型和功能
瞭解新增和移除裝置
應用程式可以註冊接收通知,以便在使用者透過 USB、藍牙或其他連線類型連接任何新輸入裝置時收到通知。他們可以根據這些資訊,視需要變更狀態或功能。舉例來說,遊戲可能會收到新鍵盤或搖桿已連接的通知,表示有新玩家加入。
查詢輸入裝置的功能
Android 4.1 版提供 API,可讓應用程式和遊戲充分利用所有已連線及可用的輸入裝置。
應用程式可以查詢裝置管理員,列舉目前已連接的所有輸入裝置,並瞭解每個裝置的功能。
控制輸入裝置上的震動器
除了其他功能之外,應用程式現在還能使用任何與所連輸入裝置相關聯的震動器服務,例如 Rumble Pak 控制器。
動畫和圖形
應用程式專用 Vsync
在 Android 架構中延伸 vsync,可提供更一致的幀率,並提供流暢、穩定的 UI。為讓應用程式也能受惠,Android 4.1 將 vsync 時間擴展至應用程式啟動的所有繪圖和動畫。這可讓他們最佳化 UI 執行緒上的作業,並提供穩定的時間基線進行同步處理。
應用程式可透過 Android 的動畫架構,免費使用 vsync 時間。動畫架構現在會使用 vsync 時間,自動處理動畫之間的同步作業。
針對特殊用途,應用程式可透過新 Choreographer 類別公開的 API 存取 vsync 時間。應用程式可以在下一個 vsync 影格上要求無效化,這是在應用程式未使用動畫架構時,安排動畫的好方法。如要使用更進階的功能,應用程式可以發布回呼,讓 Choreographer 類別在下一個影格中執行。
新的動畫動作和轉場類型
動畫架構現在可讓您定義執行 ViewPropertyAnimator 動畫時的開始和結束動作,以便與應用程式中的其他動畫或動作同步。這項動作可執行任何可執行物件。舉例來說,可執行項目可能會指定在前一個動畫結束時啟動另一個動畫。
您現在也可以指定 ViewPropertyAnimator 在動畫過程中使用圖層。先前,最佳做法是在開始動畫前設定圖層,然後處理 onAnimationEnd() 事件,以便在動畫結束時移除圖層,以便為複雜的檢視畫面製作動畫。現在,ViewPropertyAnimator 的 withLayer() 方法只需透過單一方法呼叫,即可簡化這個程序。
LayoutTransition 中的新轉場類型可讓您自動化動畫,以回應 ViewGroup 中的所有版面配置變更。
全新連線類型
Android Beam
Android Beam 是一項常見的 NFC 技術,使用者只要將兩部支援 NFC 的手機輕觸在一起,就能立即分享內容。
在 Android 4.1 中,Android Beam 可利用藍牙進行資料傳輸,讓您更輕鬆地分享圖片、影片或其他酬載。當使用者觸發轉移作業時,Android Beam 會從 NFC 轉移至藍牙,讓您輕鬆管理從一台裝置傳送至另一台裝置的檔案。
Wi-Fi 網路服務探索
Android 4.1 推出了對多播 DNS 型服務探索的支援,讓應用程式可透過 Wi-Fi 網路找到並連線至同類裝置提供的服務,包括行動裝置、印表機、相機、媒體播放器等。開發人員可以利用 Wi-Fi 網路服務探索功能,建構跨平台或多人遊戲和應用程式體驗。
應用程式可使用服務探索 API 建立及註冊任何類型的服務,供任何支援 NSD 的裝置探索。服務會透過多播在網路上宣傳,並使用人類可讀的字串 ID,方便使用者辨識服務類型。
消費性裝置可使用這個 API 掃描並探索已連線至區域 Wi-Fi 網路的裝置提供的服務。發現服務後,應用程式可以使用 API 將服務解析為 IP 位址和通訊埠,藉此建立通訊連線。
您可以善用這個 API,在應用程式中建構新功能。舉例來說,您可以讓使用者連線至支援 Wi-Fi 點對點連線的其他行動裝置上的網路攝影機、印表機或應用程式。
Wi-Fi P2P 服務探索
Ice Cream Sandwich 推出了 Wi-Fi 點對點 (P2P) 支援功能,這項技術可讓應用程式透過高頻寬點對點連線 (符合 Wi-Fi Alliance 的 Wi-Fi Direct™ 認證計畫) 直接探索和配對。即使沒有行動網路或 Wi-Fi 網路,Wi-Fi 點對點也是分享媒體、相片、檔案和其他類型資料和工作階段的理想方式。
Android 4.1 進一步擴充 Wi-Fi P2P,新增 API 支援預先關聯的服務探索。透過預先關聯的服務探索功能,應用程式可以在嘗試連線前,從附近裝置取得更多關於支援服務的實用資訊。應用程式可以針對特定服務啟動探索作業,並篩選出實際支援目標服務或應用程式的裝置。
舉例來說,這表示應用程式只能探索「印表機」或提供特定遊戲的裝置,而非探索附近的所有 Wi-Fi P2P 裝置。另一方面,您的應用程式可以向其他裝置宣傳其提供的服務,讓裝置探索該服務,然後協商連線。這可大幅簡化使用者發現和配對的程序,讓應用程式更有效地運用 Wi-Fi P2P。
您可以利用 Wi-Fi P2P 服務探索功能,建立可分享相片、影片、遊戲過程、分數等內容的應用程式和多人遊戲,而且無須使用任何網際網路或行動網路。使用者只能透過直接點對點連線連線,避免使用行動頻寬。
網路頻寬管理
當裝置連線至計量付費網路 (包括透過網路共用功能連線至可攜式無線基地台) 時,Android 4.1 可協助應用程式適當地管理數據用量。應用程式可在開始大量下載作業前,先查詢目前網路是否按流量計費,以免使用者因此付出較高的費用。透過 API,您現在可以清楚瞭解哪些網路會影響資料用量,並據此管理網路活動。
新媒體功能
媒體轉碼器存取權
Android 4.1 提供對平台硬體和軟體編碼器的低階存取權。應用程式可以查詢系統,找出裝置上可用的低階媒體編解碼器,然後依需求使用這些編解碼器。舉例來說,您現在可以建立多個媒體編碼器例項、佇列輸入緩衝區,並在回傳時接收輸出緩衝區。此外,媒體編碼器架構也支援受保護的內容。應用程式可以查詢可用的編碼器,以便透過裝置上的 DRM 解決方案播放受保護的內容。
USB 音訊
有了 USB 音訊輸出支援功能,硬體供應商就能打造可與 Android 裝置連線的硬體,例如音訊底座。這項功能也透過 Android Open Accessory Development Kit (ADK) 提供,讓所有開發人員都能自行建立硬體。
觸發錄音
Android 現可根據音訊播放音軌的完成情況,觸發音訊錄音。這項功能在某些情況下非常實用,例如播放音效,提醒使用者開始說話以便錄音。這項功能可協助你同步錄音,避免錄下目前正在播放的音訊,並避免錄音時間過晚。
多聲道音訊
Android 4.1 支援多聲道音訊,適用於透過 HDMI 連接埠輸出的硬體多聲道音訊。多聲道音訊可讓您為使用者提供豐富的多媒體體驗,適用於遊戲、音樂應用程式和影片播放器等應用程式。如果裝置不含支援的硬體,Android 會自動將音訊下混成裝置支援的通道數量 (通常為立體聲)。
Android 4.1 也內建支援編碼/解碼 AAC 5.1 音訊的功能。
音訊預先處理
開發人員可以將前置處理特效套用至錄製的音訊,例如套用雜訊抑制功能來改善語音錄製品質、針對聲學回音套用回音消除功能,以及針對音量不一致的音訊套用自動增益控制功能。需要錄製高品質音訊的應用程式,就能從這些預處理器中受益。
音訊鏈結
MediaPlayer 支援連結音訊串流,可在不暫停的情況下播放音訊檔案。這對需要在音訊檔案之間順暢轉換的應用程式非常實用,例如音樂播放器要播放含有連續曲目的專輯,或是遊戲。
Media Router
新的 API MediaRouter、MediaRouteActionProvider 和 MediaRouteButton 提供標準機制和 UI,可選擇播放媒體的位置。系統內建有線耳機和 a2dp 藍牙耳機和喇叭的支援功能,您可以在自己的應用程式中新增路由選項。
Renderscript 運算
Android 4.1 擴充了 Renderscript 運算功能,讓您享有更多彈性。您現在可以在 Renderscript 運算指令碼中取樣紋理,並使用新的 Pragma 定義指令碼所需的浮點精確度。這樣一來,您就能啟用 NEON 指令 (例如在 CPU 路徑上執行快速向量運算),而這在採用完整的 IEEE 754-2008 標準時是不可能的。
您現在可以在以 x86 為基礎的模擬器和硬體裝置上偵錯 Renderscript 運算指令碼。您也可以在單一 Renderscript 來源檔案中定義多個根式核心。
Android 瀏覽器和 WebView
在 Android 4.1 中,Android 瀏覽器和 WebView 包含下列強化功能:
- 提供更優質的 HTML5 影片使用者體驗,包括輕觸播放/暫停,以及從內嵌模式切換至全螢幕模式的流暢轉場效果。
- 改善算繪速度並減少記憶體用量,提升捲動和縮放效能。
- 改善 HTML5/CSS3/Canvas 動畫效能。
- 改善文字輸入功能。
- 更新 JavaScript 引擎 (V8),提升 JavaScript 效能。
- 支援更新版 HTML5 媒體擷取規格 (input type=file 元素的「capture」屬性)。
Google API 和服務
為進一步擴充 Android 的功能,我們推出了多項 Android 新服務。
Android 版 Google 雲端通訊
Google Cloud Messaging (GCM) 是一項服務,可讓開發人員向 Android 裝置上的使用者傳送簡訊資料,而不需要專屬的同步處理解決方案。
GCM 會處理排入訊息佇列並將訊息傳送至指定 Android 裝置的所有詳細作業。這項功能支援訊息多播,且單一要求最多可同時觸及 1,000 部連線裝置。它也支援訊息酬載,這表示除了將喚醒訊息傳送至裝置上的應用程式之外,開發人員還可以傳送最多 4 KB 的資料。
Google Cloud Messaging 對所有開發人員完全免費,註冊程序也非常簡單。如要瞭解註冊、下載和說明文件,請參閱 Google Cloud Messaging 頁面。
應用程式加密
自 Android 4.1 起,Google Play 會在所有付費應用程式發布及儲存於裝置前,使用裝置專屬金鑰加密這些應用程式,以保護應用程式資產。
智慧應用程式更新
智慧型應用程式更新是 Google Play 的新功能,可為裝置提供更佳的應用程式更新。開發人員發布更新時,Google Play 現在只會將已變更的位元傳送至裝置,而非整個 APK。在大多數情況下,這麼做可讓更新檔案更輕,因此下載速度更快、可節省裝置電池電量,並節省使用者行動數據方案的頻寬用量。智慧型應用程式更新檔案的平均大小約為完整 APK 更新檔案的 1/3。
Google Play 服務
Google Play 服務可協助開發人員將Google 服務 (例如驗證機制) 整合至透過 Google Play 發布的應用程式。
Google Play 會自動為使用者裝置佈建 Google Play 服務,因此您只需要在應用程式中加入精簡用戶端程式庫即可。
由於應用程式只包含小型用戶端程式庫,您可以利用這些服務,而下載大小和儲存空間也不會大幅增加。此外,Google Play 也會為服務定期提供更新,開發人員不必發布應用程式更新,即可充分運用這些更新。
如要進一步瞭解 Google Play 服務中的 API,請參閱 Google Play 服務開發人員頁面。