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 圖形功能的遊戲和其他應用程式。您可以透過架構 API或原生 API 繫結透過 Android Native Development Kit (NDK) 充分利用 OpenGL ES 3.0 和相關 EGL 擴充功能。
OpenGL ES 3.0 中提供的主要新功能包括加速進階視覺效果、高品質 ETC2/EAC 紋理壓縮做為標準功能、新版 GLSL ES 著色語言的 GLSL ES 著色語言 (支援整數和 32 位元浮點語言)、進階紋理算繪,以及標準化紋理大小和算繪緩衝區格式。
您可以使用 OpenGL ES 3.0 API 來建立在多種相容 Android 裝置上執行的高度複雜、高效率圖形,而且在這些裝置上可以支援單一標準紋理壓縮格式。
OpenGL ES 3.0 是選用功能,必須仰賴基礎圖形硬體。Nexus 7 (2013)、Nexus 4 和 Nexus 10 裝置已提供支援。
進階藍牙連線能力
與藍牙智慧型裝置和感應器的連線
現在,您可以設計及建構與新一代低功耗裝置和感應器互動的應用程式 (採用藍牙智慧型技術)。
![](https://developer.android.google.cn/static/images/jb-btle.png?authuser=0000&hl=zh-tw)
Android 4.3 提供與 Bluetooth Smart 裝置互動的單一標準 API。
Android 4.3 針對中心角色導入了藍牙 Smart Ready 的內建平台支援,並提供一組標準 API,供應用程式用於探索鄰近裝置、查詢 GATT 服務以及讀取/寫入特性。
透過新的 API,您的應用程式可以有效率地掃描感興趣的裝置和服務。您可以針對每部裝置,透過 UUID 檢查支援的 GATT 服務,並根據裝置 ID 和訊號強度管理連線。您可以連線至裝置上託管的 GATT 伺服器並讀取或寫入特性,或是註冊事件監聽器,在這些特性發生變化時接收通知。
您可以實作任何 GATT 設定檔的支援。您可以視需要讀取或寫入標準特性,或新增對自訂特性的支援。您的應用程式可做為用戶端或伺服器運作,且可在任一模式下傳輸及接收資料。這些 API 是通用 API,因此能夠支援與各種裝置的互動,例如鄰近標記、手錶、健身計、遊戲控制器、遙控器、健康裝置等等。
Nexus 7 (2013) 和 Nexus 4 裝置已提供 Bluetooth Smart Ready 支援,我們將於數個月內支援更多 Android 相容裝置。
AVRCP 1.3 設定檔
Android 4.3 內建藍牙 AVRCP 1.3 支援功能,讓應用程式可以與遠端串流媒體裝置進行更豐富的互動。媒體播放器等應用程式可透過 Android 4.0 中引入的遠端控制用戶端 API,善用 AVRCP 1.3。除了透過藍牙連線的遠端裝置提供播放控制項外,應用程式現在可以傳送曲目名稱、作曲家和其他類型媒體中繼資料等中繼資料。
平台支援 AVRCP 1.3 時,是以 Google 和 Android 4.2 中導入的 Bluedroid 藍牙堆疊為基礎。至於 Nexus 裝置及其他提供 A2DP/AVRCP 功能的 Android 相容裝置,我們皆可提供支援服務。
支援設有限制的個人資料
![建立設有限制的個人資料](https://developer.android.google.cn/static/images/jb-profiles-create-n713.png?authuser=0000&hl=zh-tw)
平板電腦擁有者可以在「設定」中建立一或多個設有限制的個人資料,並分別管理這些設定檔。
![設定設定檔限制](https://developer.android.google.cn/static/images/jb-profiles-restrictions-n713.png?authuser=0000&hl=zh-tw)
應用程式可以提供限制,讓擁有者管理在設定檔中執行的應用程式內容。
Android 4.3 擴充了設有受限設定檔的平板電腦適用的多使用者功能,這是一種可在單一裝置上管理使用者及其功能的新方式。如果設定檔設有限制,平板電腦擁有者就可以為每位使用者快速設定不同的環境,還能管理這些環境中提供的應用程式中精細的限制。設有限制的個人資料適合親朋好友、訪客使用者、資訊站、銷售點裝置等使用。
每個設有限制的設定檔都提供安全獨立的空間,具有專屬的本機儲存空間、主畫面、小工具和設定。和使用者不同,系統會根據擁有者安裝的應用程式和系統帳戶,從平板電腦擁有者的環境中建立設定檔。擁有者可控管要在新設定檔中啟用哪些已安裝的應用程式,而擁有者的帳戶存取權預設為停用。
需要存取擁有者帳戶 (用於登入、偏好設定或其他用途) 的應用程式可藉由宣告資訊清單屬性來選擇加入,擁有者則可在設定檔設定中查看及管理這些應用程式。
對於開發人員來說,設有限制的個人資料是為使用者提供更多價值和控制權的新方式。您可以實作應用程式限制 (應用程式支援的內容或功能控制項),並在設定檔設定中向平板電腦擁有者公告。
您可以使用預先定義的布林值、選取和複選類型,將應用程式限制直接新增至設定檔配置設定。如要更靈活地操作,您甚至可以從設定檔配置設定啟動自己的 UI,提供任何類型的限制。
應用程式在設定檔中執行時,可以檢查擁有者設定的所有限制,並適當強制執行。舉例來說,媒體應用程式可能會提供限制,讓擁有者設定商家檔案的心智成熟度等級。在執行階段,應用程式可以檢查成熟度設定,然後根據偏好的心智成熟度等級管理內容。
如果您的應用程式不是專為使用受限的設定檔設計,您可以完全選擇不採用,這樣應用程式就無法在任何設有限制的個人資料中啟用。
最佳化位置和感應器功能
Google Play 服務提供可在應用程式中使用的進階 Location 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 裝置已提供新的硬體功能,任何裝置製造商或晶片組廠商皆可在自家裝置上建構這些功能。
新的媒體功能
模組化數位版權管理架構
為滿足新一代媒體服務的需求,Android 4.3 推出了模組式 DRM 架構,可讓媒體應用程式開發人員更輕鬆地將 DRM 整合到自己的串流通訊協定,例如 MPEG DASH (透過 HTTP 的動態自動調整串流技術、ISO/IEC 23009-1)。
媒體 DRM 架構結合了新的 API 與強化現有 API 的功能,可提供整合式服務,可用來管理授權和佈建、存取低階轉碼器,以及解碼加密的媒體資料。新的 MediaExtractor API 可讓您取得 DASH 媒體的 PSSH 中繼資料。使用媒體 DRM 架構的應用程式會透過授權伺服器管理網路通訊,並處理內容資料庫加密資料的串流。
VP8 編碼器
Android 4.3 引進了可從架構和原生 API 存取的 VP8 編碼。如果應用程式使用原生 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 中導入的媒體 demuxing API 有所對應。
遠端控制用戶端中的播放進度和拖曳功能
自 Android 4.0 起,媒體播放器和類似應用程式能夠支援遠端控制用戶端的播放控制項,例如裝置螢幕鎖定、通知,以及透過藍牙連線的遠端裝置。從 Android 4.3 開始,這些應用程式現在可以透過遠端控制用戶端公開播放進度和速度,並接收指令以跳至特定的播放位置。
打造精美應用程式的全新方式
通知存取權
通知一直以來都是 Android 的熱門功能,可讓使用者集中查看系統中的資訊和更新內容。在 Android 4.3 中,應用程式可以在取得使用者授權後觀察通知串流,並以偏好的方式顯示通知,包括透過藍牙將資料傳送至鄰近裝置。
您可以透過新的 API 存取通知,進而註冊通知事件監聽器服務,且獲得使用者權限,即可在狀態列顯示通知時接收通知。通知會完整傳送給您,其中包含來源應用程式、發布時間、內容檢視、樣式,以及優先順序的所有詳細資料。您可以評估通知感興趣的欄位、處理或新增應用程式的內容,並以自己選擇的任何方式轉送這些欄位以供顯示。
新的 API 可在新增、更新和移除通知時提供回呼 (原因可能是使用者關閉了通知,或原始應用程式已將其關閉)。您可以啟動附加至通知或動作的任何意圖,也能從系統關閉該意圖,讓應用程式能夠提供完整的通知使用者介面。
使用者仍可控制可接收通知的應用程式。他們可隨時前往「設定」查看哪些應用程式具有通知存取權,並視需要啟用或停用存取權。通知存取權預設為停用,應用程式可以使用新的意圖直接引導使用者前往「設定」,在安裝後啟用事件監聽器服務。
查看疊加層
您現在可以在 View 和 ViewGroup 上方建立透明重疊,在不干擾基礎版面配置階層的情況下,算繪暫時性的檢視區塊階層或暫時性動畫效果。當您想在不影響檢視區塊階層的情況下建立動畫 (例如從容器外滑動或拖曳畫面上的項目) 時,疊加層就特別實用。
光學邊界版面配置模式
透過新的版面配置模式,您可以根據 ViewGroup 的光學邊界 (而非裁剪邊界) 管理 View 內的位置。剪輯邊界代表小工具的實際外部邊界,新的光學邊界則說明小工具在裁剪邊界內的顯示位置。您可以使用光學邊界版面配置模式,適當對齊使用陰影和光暈等外部視覺效果的小工具。
自訂旋轉動畫類型
應用程式現在可以定義旋轉裝置時視窗中使用的結束和進入動畫類型。您可以設定視窗屬性,以啟用 jump-cut、cross-fade 或標準視窗旋轉。當視窗以全螢幕顯示,且未被其他視窗遮住時,系統就會使用自訂動畫類型。
螢幕方向模式
應用程式可以為活動設定新的方向模式,確保其在裝置翻轉時能以正確的方向顯示。此外,應用程式可以使用新模式,鎖定畫面使其目前的方向。使用相機的應用程式想在拍攝影片時停用旋轉功能,這就非常實用。
處理快速回應的意圖
Android 4.3 導入了全新的公開意圖,可讓任何應用程式處理快速回應,也就是使用者針對來電傳送的簡訊,無需接聽電話或解鎖裝置。應用程式可以監聽意圖,並透過訊息系統傳送訊息給呼叫端。意圖包含收件者 (呼叫端) 以及訊息本身。
支援國際使用者
![](https://developer.android.google.cn/static/images/jb-rtl-arabic-n4.png?authuser=0000&hl=zh-tw)
![](https://developer.android.google.cn/static/images/jb-rtl-hebrew-n4.png?authuser=0000&hl=zh-tw)
Android 4.3 有更多部分已針對 RTL 語言進行最佳化。
RTL 改善項目
Android 4.3 內含 RTL 效能強化項目,並針對架構 UI 小工具 (包括 ProgressBar/Spinner 和 ExpandListView) 提供更廣泛的 RTL 支援。可透過 uiautomatorviewer
工具查看更多偵錯資訊。此外,更多系統 UI 元件現在支援 RTL 感知功能,例如通知、導覽列和動作列。
為了在 RTL 指令碼中提供更優質的系統體驗,更多的預設系統應用程式現在支援 RTL 版面配置,包括啟動器、快速設定、電話、聯絡人、SetupWizard、時鐘、下載等功能。
本地化的公用程式
![](https://developer.android.google.cn/static/images/jb-pseudo-locale-zz.png?authuser=0000&hl=zh-tw)
虛擬語言代碼可讓您輕鬆測試應用程式的本地化體驗。
Android 4.3 還包含新的公用程式和 API,可用於建立更佳的 RTL 字串並測試本地化使用者介面。新的 BidiFormatter 類別提供簡單的 API 可將 Unicode 字串包裝,以便讓 RTL 指令碼資料以 LTR 語言代碼訊息的形式顯示,反之亦然。為了協助您在應用程式中更廣泛地使用這個公用程式,現在您也可以透過 Android SDK 中的支援套件,在舊版平台版本中使用 BidiFormatter API。
為協助您管理跨語言代碼的日期格式,Android 4.3 加入了新的 getBestDateTimePattern() 方法,根據您指定的語言代碼,自動產生最佳 Unicode UTS 日期格式。輕鬆為使用者提供更本地化的體驗。
為了協助您更輕鬆地在其他語言代碼中測試應用程式,Android 4.3 推出了「虛擬語言代碼」做為新的開發人員選項。虛擬語言代碼會模擬與語言代碼或語言群組相關的語言、指令碼和顯示特徵。目前,您可以使用「Accented English」的虛擬語言代碼進行測試,以呈現 UI 如何搭配各種歐洲語言中使用的指令碼口音和字元。
無障礙功能和 UI 自動化
從 Android 4.3 開始,無障礙服務可以觀察及篩選重要事件,例如處理鍵盤快速鍵,或提供與手勢輸入的瀏覽一致性。服務會接收事件,並視需求處理事件,再將事件傳送至系統或其他已安裝的應用程式。
無障礙服務可以宣告新的功能屬性,以說明服務的功能,以及使用的平台功能。舉例來說,他們可以宣告篩選重要事件、擷取視窗內容、啟用觸控探索或啟用網頁無障礙功能。在某些情況下,服務必須宣告功能屬性,才能存取相關的平台功能。系統會透過服務的功能屬性產生選擇加入對話方塊,讓使用者在啟動前查看及同意功能。
以 Android 4.3 的無障礙架構為基礎,全新的 UI 自動化架構可模擬使用者動作及顯示畫面內容,藉此測試與裝置 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 金鑰庫提供者
Android 4.3 推出了 KeyStore 提供者和 API,可讓應用程式建立專屬使用金鑰。使用 API 時,應用程式可以建立或儲存其他應用程式無法查看或使用的私密金鑰,並可以新增至 KeyStore,完全不需要使用者互動。
KeyChain API 提供與 KeyChain API 相同的安全性優勢,適用於整個系統的憑證,例如將憑證繫結至裝置。無法將 KeyStore 中的私密金鑰從裝置中匯出。
透過 Android 應用程式限制 Setuid
/system
分區現已針對 zygote 產生的程序掛接 nosuid
,避免 Android 應用程式執行 setuid
程式。這可減少根攻擊面和潛在安全漏洞的可能性。
分析成效的新方式
![](https://developer.android.google.cn/static/images/jb-systrace.png?authuser=0000&hl=zh-tw)
Systrace 使用新的指令語法,可讓您收集更多類型的剖析資料。
強化 Systrace 記錄功能
Android 4.3 支援使用更容易使用的強化版 Systrace 工具,讓您存取更多類型的資訊,從而分析應用程式效能。您現在可以透過硬體模組、核心函式、Dalvik VM 收集追蹤記錄資料,包括垃圾收集、資源載入等。
Android 4.3 也包含新的 Trace API,您可以在應用程式中使用這類 API,透過 Systrace 開始/結束事件標示要追蹤的特定程式碼區段。執行標記的程式碼區段時,系統會將開始/結束事件寫入追蹤記錄。對應用程式效能幾乎沒有影響,因此回報的時間可讓您準確掌握應用程式的運作情形。
您可以在 Systrace 輸出檔案中的時間軸以視覺化方式呈現應用程式專屬事件,並在其他核心和使用者空間追蹤資料中分析事件。自訂應用程式區段搭配現有的 Systrace 標記,可讓您以全新方式瞭解應用程式的效能和行為。
![](https://developer.android.google.cn/static/images/jb-gpu-profile-clk-n4.png?authuser=0000&hl=zh-tw)
![](https://developer.android.google.cn/static/images/jb-gpu-profile-cal-n4.png?authuser=0000&hl=zh-tw)
Android 4.3 的螢幕 GPU 剖析。
螢幕 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
![手機和平板電腦上的 Android 4.2 版本](https://developer.android.google.cn/static/images/jb-device-2.png?authuser=0000&hl=zh-tw)
歡迎使用最新版本的 Jelly Bean!
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 使用者介面模式,例如狀態列、系統列和通知視窗。
所有螢幕大小現在都會在頂端顯示「狀態列」,並透過下拉式選單提供「通知」,以及全新的「快速設定」選單。畫面下方會顯示熟悉的系統列,使用左右手可輕鬆存取按鈕。所有螢幕大小也都提供「應用程式匣」。
一台平板電腦,許多使用者
現在,多位使用者可以共用一部 Android 平板電腦,讓每位使用者都方便存取專屬使用者空間。使用者只要在螢幕鎖定畫面上輕觸一下,即可切換至聊天室。
在多使用者裝置上,Android 為每位使用者提供一個獨立的環境,包括使用者專屬的模擬 SD 卡儲存空間。使用者也有自己的主畫面、小工具、帳戶、設定、檔案和應用程式,而系統會分開存放這些內容。所有使用者共用核心系統服務,但系統會確保每位使用者的應用程式和資料保持獨立。實際上,每位使用者都有自己的 Android 裝置。
使用者隨時可以在自己的環境中安裝及解除安裝應用程式。為了節省儲存空間,Google Play 只會下載未在裝置上其他使用者安裝的 APK。如果您已安裝應用程式,Google Play 會照常記錄新使用者的安裝內容,但不會下載應用程式的其他副本。由於系統會為每位使用者建立新的執行個體,包括使用者專屬資料目錄,因此多位使用者可以執行相同的 APK。
對開發人員而言,多使用者支援是透明的,您的應用程式不需要特別在多使用者環境中正常執行,也不必在現有或發布的 APK 中進行任何變更。系統會管理每個使用者空間中的應用程式,就像在單一使用者環境中一樣。
吸引使用者的新方法
![日曆螢幕鎖定畫面小工具](https://developer.android.google.cn/static/images/jb-lock-calendar.png?authuser=0000&hl=zh-tw)
您可以擴充應用程式小工具,使其在鎖定畫面執行,方便隨時存取內容。
螢幕鎖定小工具
在 Android 4.2 中,使用者可以直接將應用程式小工具放在螢幕鎖定畫面上,不必解鎖就能快速存取喜愛的應用程式內容。使用者最多可以新增五個螢幕鎖定小工具,並從已安裝應用程式提供的小工具中進行選擇。螢幕鎖定畫面會在各自的面板中顯示每個小工具,讓使用者左右滑動即可查看不同的面板和小工具。
螢幕鎖定小工具和所有應用程式小工具一樣,可以顯示任何種類的內容,並且可接受直接的使用者互動。這些元素可以完全獨立,例如提供音樂播放控制項的小工具,或是讓使用者在視需要解鎖後直接跳至應用程式中的活動。
對開發人員來說,螢幕鎖定小工具是與使用者交流互動的一種新方式。您可以透過這項功能,在使用者經常造訪的位置看到您的內容,還可以讓您有更多機會將使用者直接進入應用程式。
如要充分運用這項新功能,請建立新的應用程式小工具,或擴充現有的主畫面小工具。如果您的應用程式已經含有主畫面小工具,則可在最小程度上將小工具延伸至螢幕鎖定畫面。為提供最佳使用者體驗,您可以更新小工具,在可用的情況下使用全螢幕區域,並視需要在小螢幕上調整大小。您也可以在小工具中新增特定功能,方便在鎖定畫面中使用,或特別方便。
Daydream
Daydream 是一種互動式螢幕保護程式模式,在使用者的裝置插入座架或充電時啟動。在此模式下,系統會啟動安裝日 (由已安裝的應用程式提供的遠端內容服務) 做為裝置螢幕保護程式。使用者可以在「設定」應用程式中啟用 Daydream,然後選擇要顯示的休眠模式。
Daydream 結合了動態桌布和主畫面小工具的強大功能,但功能更強大。透過這種全新的情境,您可以使用使用者互動方式提供各種內容,例如快速瀏覽相片、播放音訊或影片,或是輕觸一下直接進入應用程式。
由於休眠模式可在裝置充電或插入座架時自動啟動,因此應用程式也能藉此支援新型使用者體驗,例如 Leanback 或展覽模式、示範/資訊站模式,以及「吸引模式」,而且完全不需要特殊硬體。
![Daydream 螢幕保護程式模式](https://developer.android.google.cn/static/images/jb-dream-1.png?authuser=0000&hl=zh-tw)
Daydream 可讓您建立功能強大的互動式螢幕保護程式,可顯示任何類型的內容。
Daydream 與活動類似,可執行 Activity 可執行的操作,包括轉譯 UI 階層 (不使用 RemoteViews),以及使用 Canvas、OpenGL、SurfaceTexture 等直接繪圖。它們可以播放影片和音訊,甚至接受直接的使用者互動。不過, Daydream 不是活動,所以不會影響返回堆疊或顯示在「最近使用」中,也無法直接從應用程式啟動。
實作休眠模式相當簡單,您可以使用您已為應用程式其他部分建立的 UI 元件和資源。您可以在應用程式中提供多個休眠模式,並為每個螢幕提供不同的內容和顯示設定。
外接螢幕支援
Android 4.2 針對外部螢幕導入了單一平台,而且支援範圍遠超越鏡像;應用程式現在可以鎖定連接至 Android 裝置的任一或多個螢幕的不重複內容。應用程式可以據此建構,向使用者提供新的互動方式和娛樂體驗。
螢幕管理員
應用程式透過新的顯示管理員系統服務與螢幕互動。您的應用程式可以列舉螢幕並檢查各項功能,包括大小、密度、顯示名稱、ID、安全影片支援等。應用程式也能在新增或移除螢幕或變更其功能變更時收到回呼,以便更妥善管理外部螢幕上的內容。
簡報視窗
為了讓在外部螢幕上輕鬆顯示內容,這個架構提供名為「Presentation」的新 UI 物件,是一種對話方塊,代表特定外部螢幕上應用程式內容的視窗。應用程式僅提供螢幕使用、視窗主題以及任何要顯示的獨特內容。簡報會根據指定螢幕的特性,加載資源並轉譯內容。
![](https://developer.android.google.cn/static/images/external-display.png?authuser=0000&hl=zh-tw)
你可以使用簡報完全控制兩個以上的獨立螢幕。
簡報可讓應用程式完全控制遠端顯示視窗及其內容,並讓您根據使用者輸入事件 (例如按鍵、手勢、動作事件等) 進行管理。您可以使用所有一般工具建立 UI 並在簡報中顯示內容,包括建構任意檢視區塊階層,以及使用 SurfaceView 或 SurfaceTexture,然後直接在視窗中繪製串流內容或相機預覽。
偏好的螢幕顯示選項
如果有多個外接螢幕,則可視需要建立不限數量的簡報,並讓每個簡報在特定螢幕上呈現不同的內容。在許多情況下,您可能只想在單一外部螢幕上顯示內容,但一律要使用最適合簡報內容的畫面。在此情況下,系統可協助應用程式選擇最合適的螢幕。
為了找出最合適的顯示方式,應用程式可以向螢幕管理工具查詢系統的偏好的簡報顯示方式,並在畫面變更時接收回呼。或者,您也可以使用媒體路由器服務 (於 Android 4.2 擴充),在系統視訊路徑變更時收到通知。根據預設,應用程式可在主要「活動」中顯示內容,直到附加偏好的簡報顯示為止,之後就能自動在偏好的螢幕上切換至簡報內容。應用程式也可以使用媒體路由器的 MediaRouteActionProvider 和 MediaRouteButton 提供標準的顯示選擇 UI。
受保護的內容
如果應用程式需要處理受保護的或加密內容,Display API 現在會回報附加螢幕的安全影片功能。您的應用程式會查詢螢幕,瞭解該螢幕是否提供安全的影片輸出或提供受保護的圖形緩衝區,然後選擇適當的內容串流或解碼以顯示內容。為了進一步保障 SurfaceView 物件的安全性,應用程式可以設定安全標記,指出內容一律不得出現在螢幕截圖或不安全的螢幕輸出內容中,即使套用鏡像功能也一樣。
無線螢幕分享
從 Android 4.2 開始,受支援裝置的使用者就可以使用 Wi-Fi 螢幕 (符合 MiracastTM 認證計畫的點對點無線顯示解決方案) 透過 Wi-Fi 連線至外部螢幕。連接無線螢幕後,使用者即可將任何類型的內容串流至大螢幕,包括相片、遊戲、地圖等。
應用程式可以像處理其他外部螢幕一樣,利用無線螢幕優勢,而且無須額外處理。系統會管理網路連線,並視需要將簡報或其他應用程式內容串流至無線螢幕。
原生 RTL 支援
![RTL 版面配置鏡像](https://developer.android.google.cn/static/images/jb-rtl.png?authuser=0000&hl=zh-tw)
開發人員現在可以針對 RTL 語言建立鏡像版面配置。
Android 4.2 推出了完整的 RTL 原生支援 (由右至左) 版面配置,包括版面配置鏡像。原生支援 RTL 語言可讓您為所有使用者提供相同的優質應用程式體驗,無論使用者的語言使用的指令碼是由右至左或從左至右讀取的指令碼皆可。
當使用者將系統語言從從右到左的指令碼時,系統現在除了提供應用程式 UI 版面配置和所有檢視小工具的鏡像,還能夠針對讀取和字元輸入提供文字元素的鏡像。
在應用程式中可以輕鬆運用 RTL 版面配置鏡像功能。如果您希望系統為應用程式建立鏡像,只需在應用程式資訊清單中宣告新屬性,並將所有「左/右」版面配置屬性變更為新的「start/end」對等屬性即可。接著,系統會視情況處理 UI 的鏡像和顯示。
為了精確控制應用程式 UI,Android 4.2 提供新的 API,可讓您管理 View 元件中的版面配置方向、文字方向、文字對齊方式、重心和語言代碼方向。使用從右至左的指令碼時,您甚至可以建立自訂版本的版面配置、可繪項目和其他資源,以供顯示。
為協助您偵錯及最佳化自訂由右至左的版面配置,HierarchyViewer 工具現在可讓您查看階層中所有檢視區塊的開始/結束屬性、版面配置方向、文字方向和文字對齊方式。
改善國際語言
Android 4.2 針對國際使用者提供多種字型和字元最佳化:
- 韓文使用者可使用新的字型選項:Nanum (描눔해黎),這是專為韓文文字設計的萬國碼 (Unicode) 字型。
- 改善 WebView 中顯示的日文直向文字支援功能。
- 改善印度、泰文、阿拉伯文和希伯來文預設字型的字型結構與定位。
預設的 Android 鍵盤也包含一組更新過的字典:
- 改善法文 (支援 Bimram) 字典、英文與俄文
- 新增丹麥文、希臘文、芬蘭文、立陶宛文、拉脫維亞文、波蘭文、斯洛維尼亞文、塞爾維亞文、瑞典文、土耳其文的新字典
打造精美使用者介面的新方法
巢狀片段
如要進一步控管 UI 元件並使其更模組化,Android 4.2 可讓您在 Fragment 中建立巢狀片段。針對任何片段,您可以使用新的片段管理員,在檢視區塊階層中插入其他 Fragment 做為子項節點。
您可以透過各種方式使用巢狀片段,但對於在本身動態且可重複使用的 UI 元件中實作可重複使用的動態和可重複使用的 UI 元件,這些片段特別實用。舉例來說,如果您使用 ViewPager 建立可左右滑動的片段,現在可以將片段插入 View Pager 的每個片段。
為了讓您在應用程式中充分運用巢狀 Fragment,最新版 Android 支援資料庫已新增這項功能。
無障礙功能
系統現在可協助無障礙服務在觸控探索模式下分辨觸控探索和無障礙手勢。使用者輕觸螢幕時,系統會通知服務,表示一般觸控互動已開始。然後,它會追蹤觸控互動的速度,判斷這是觸控探索 (慢) 還是無障礙手勢 (快速),並通知服務。當觸控互動結束時,系統會通知服務。
系統提供新的全域無障礙選項,可讓無障礙服務根據使用者的動作開啟「快速設定」選單。此外,Android 4.2 也新增了一個適用於點字裝置的無障礙意見回饋類型。
為了讓無障礙服務深入瞭解 View 的意義,方便存取,架構提供新的 API,用來將 View 連結至其他 View 的標籤。每個 View 的標籤都能透過 AccessibilityNodeInfo 供無障礙服務使用。
使用 HDR 提升相機效能
Android 4.2 推出了新的相機硬體介面和管道,可提升效能。在支援的裝置上,應用程式可以使用新的 HDR 相機場景模式,運用高動態範圍影像技術拍照。
此外,架構現在提供 API,可讓應用程式檢查相機快門音效是否可以停用。然後,應用程式可讓使用者停用音效或選擇其他音效,以取代標準快門音效 (建議做法)。
Renderscript 運算
在 Android 4.2 中,Renderscript 運算引進了新的指令碼功能、新的最佳化功能和直接 GPU 整合功能,因此可在運算作業中發揮最佳效能。
篩選器指令碼
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 就能以最佳方式執行指令碼,避免個別執行指令碼。
![轉譯最佳化圖表](https://developer.android.google.cn/static/images/jb-rs-chart-versions.png?authuser=0000&hl=zh-tw)
Renderscript 圖片處理基準測試只能在不同的 Android 平台版本 (Android 4.0、4.1 和 4.2) 上執行,僅適用於 Galaxy Nexus 裝置。
![](https://developer.android.google.cn/static/images/jb-rs-chart-gpu.png?authuser=0000&hl=zh-tw)
Renderscript 圖片處理基準是指在同一 Nexus 10 裝置上,以 GPU 和 CPU 執行的作業比較,以及只透過 CPU 執行的作業。
如果您有可執行的 Renderscript 作業有向非循環圖,可以使用建構工具類別來建立定義作業的指令碼群組。在執行期間,Renderscript 會最佳化執行順序以及這些作業之間的連結,以獲得最佳效能。
持續改善最佳化功能
使用 Renderscript 執行運算作業時,應用程式可受益於 Renderscript 引擎本身的效能和最佳化改善,而不會影響應用程式的程式碼或重新編譯作業。
隨著最佳化改善,您的作業在更多晶片組上的執行速度也更快,您不必進行任何工作。右側的圖表會醒目顯示各 Android 平台連續版本的 Renderscript 最佳化改善項目,所提供的效能提升。
GPU 運算
Renderscript Compute 是第一個移植於行動裝置 GPU 的運算平台。現在,它會在可能的情況下自動利用 GPU 運算資源來提升效能。透過 GPU 整合,即使是圖像或圖片處理最複雜的運算作業,也能透過大幅改善效能執行。
凡是在支援的裝置上使用 Renderscript 的應用程式,不必重新編譯,就能立即受益於這項 GPU 整合功能。Nexus 10 平板電腦是第一款支援這項整合功能的裝置。
新的內建開發人員選項
Android 4.2 系統包含各種新的開發人員選項,可讓您更輕鬆地建立效能優異的應用程式。這些新選項提供了從任何裝置或模擬器為應用程式偵錯及剖析的功能。
在搭載 Android 4.2 的裝置上,開發人員選項會預設為隱藏,有助於為使用者提供更優質的體驗。只要在任何相容的 Android 裝置上依序前往「設定」 >「關於手機」 >「版本號碼」輕觸 7 下,即可查看開發人員選項。
![](https://developer.android.google.cn/static/images/jb-dev-options-device.png?authuser=0000&hl=zh-tw)
全新的開發人員選項讓您以更多方式在裝置上剖析及偵錯。
Android 4.2 的新開發人員選項包括:
- 取得錯誤報告:立即擷取螢幕截圖,並將裝置狀態資訊轉儲到本機檔案儲存空間,然後將這些資訊附加到新的外寄電子郵件訊息。
- 電源選單錯誤報告:在裝置電源選單中新增新選項,以及取得錯誤報告的快速設定 (請參閱上方說明)。
- 透過 usb 驗證應用程式:可讓您停用透過 USB 側載應用程式進行的應用程式檢查,同時繼續檢查來自其他來源 (例如瀏覽器) 的應用程式。這樣可以加快開發程序,同時保持啟用安全性功能。
- 顯示硬體層更新 - 硬體圖層更新時會以綠色閃爍。
- 顯示 GPU 過度繪製 - 醒目顯示 GPU 過度繪製區域。
- 「Force 4x MSAA」:在 Open GL ES 2.0 應用程式中啟用 4x MSAA。
- 「Simulate secondary display」:在目前螢幕上建立一或多個不安全的重疊視窗,做為模擬遠端螢幕使用。你可以控制模擬螢幕的大小和密度。
- 「Enable OpenGL traces」:使用 Logcat、Systrace 或對 glGetError 的呼叫堆疊追蹤 OpenGL 執行作業。
新平台技術
Android 4.2 內含多項新的強化版平台技術,可支援多種硬體裝置的創新通訊用途。在大多數情況下,新平台技術和強化功能不會直接影響您的應用程式,因此您不必進行任何修改就能享有這些好處。
安全性增強項目
每個 Android 版本都包含數十種安全性強化功能,可以保護使用者。以下是 Android 4.2 的部分強化功能:
- 應用程式驗證:使用者可以選擇啟用「驗證應用程式」,讓應用程式在安裝之前通過應用程式驗證器篩選。當使用者嘗試安裝可能有害的應用程式時,應用程式驗證功能可以提醒使用者;如果應用程式特別糟糕,可能會封鎖安裝程序。
- 進一步掌控付費簡訊:如果應用程式嘗試傳送簡訊至使用付費服務的簡短代碼,且可能會產生額外費用,Android 就會發出通知。使用者可以選擇允許應用程式傳送訊息,還是封鎖訊息。
- 永久連線的 VPN - 可以設定 VPN,讓應用程式在建立 VPN 連線之前無法存取網路。這樣可避免應用程式在其他網路間傳送資料。
- 憑證綁定 - libcore SSL 實作現在支援憑證綁定功能。如果憑證未鏈結至一組預期的憑證,釘選的網域會收到憑證驗證失敗。這可防止憑證授權單位遭到入侵。
- 改善 Android 權限顯示方式 - 將權限分門別類,方便使用者瞭解。在權限審查期間,使用者只要按一下權限,即可查看有關權限的詳細資訊。
- 已安裝的強化功能:安裝的 Daemon 並非以超級使用者的身分執行,因此可以減少潛在的根權限提升攻擊途徑。
- init 指令碼強化:init 指令碼現在會套用 O_NOFOLLOW 語意,防止符號連結相關攻擊。
- FORTIFY_SOURCE - Android 現已實作 FORTIFY_SOURCE。系統程式庫和應用程式會使用這個欄位,防止記憶體損毀。
- ContentProvider 預設設定:針對以 API 級別 17 為目標的應用程式,會預設將每個 ContentProvider 的「export」設為「false」,減少應用程式的預設攻擊途徑。
- Cryptography:修改 SecureRandom 和 Cipher.RSA 的預設實作以使用 OpenSSL。已針對使用 OpenSSL 1.0.1 的 TLSv1.1 和 TLSv1.2 新增 SSLSocket 支援
- 安全性修正項目 - 升級的開放原始碼程式庫可進行安全性修正,包括 WebKit、libpng、OpenSSL 和 LibXML。Android 4.2 也針對 Android 的特定安全漏洞提供修正程式。我們已向 Open 手機聯盟成員提供這些安全漏洞的相關資訊,並可透過 Android 開放原始碼計畫取得修正內容。為提升安全性,部分搭載舊版 Android 的裝置也可能包含這些修正程式。
新增藍牙堆疊
Android 4.2 推出了針對 Android 裝置最佳化的全新藍牙堆疊。由 Google 與 Broadcom 合作開發的全新藍牙堆疊取代了以 BlueZ 為基礎的堆疊,可提供更高的相容性和穩定性。低延遲音訊
Android 4.2 改善了低延遲音訊播放支援功能,首先是針對使用 OpenSL ES、Soundpool 和色調產生器 API 改善的 Android 4.1 版本,針對音訊輸出延遲做出改善。這些改善項目取決於硬體支援,提供這些低延遲音訊功能的裝置可以透過硬體功能常數向應用程式宣傳。提供新的 AudioManager API,用於查詢原生音訊取樣率和緩衝區大小,以在宣告此功能的裝置上使用。
新的相機硬體介面
Android 4.2 導入了相機堆疊的新實作方式。相機子系統包含相機管道中的元件實作方式,例如設有處理控制項的爆發模式擷取功能。全新 NFC 硬體介面和控制器介面
Android 4.2 導入了以 NFC-Forum 為基礎的 NCI 標準為基礎的控制器支援。NCI 提供 NFC 控制器 (NFCC) 和裝置主機之間的標準通訊協定,以及由 Google 與 Broadcom 合作開發的全新 NFC 堆疊。Dalvik 執行階段最佳化
Dalvik 執行階段包含更多種架構的效能和安全性強化功能:
- Intel 和 MIPS 提供的 MIPS JIT 支援提供的 x86 JIT 支援
- 針對大小超過 512 MB 的裝置,將垃圾收集參數最佳化
- SecureRandom 和 Cipher.RSA 的預設實作現在使用 OpenSSL
- 透過 OpenSSL 1.0.1 支援 SSLSocket 對 TLSv1.1 和 TLSv1.2 支援
- 針對 StrictMath 方法新增 abs、min、max 和 sqrt 新的內建函式支援
- BouncyCastle 已更新至 1.47
- zlib 已更新至 1.27
- dlmalloc 已更新至 2.8.6
Android 4.1
![](https://developer.android.google.cn/static/images/jb-android-4.1.png?authuser=0000&hl=zh-tw)
歡迎使用 Android 4.1 第一版 Jelly Bean!
Android 4.1 是目前最快、最流暢的 Android 版本。我們在整個平台中做了改進,並為使用者和開發人員新增強大的新功能。這份文件可幫助開發人員瞭解我們為開發人員提供的新功能。
如要進一步瞭解新的開發人員 API,請參閱 Android 4.1 API 說明文件。
如要進一步瞭解 Jelly Bean 的使用者功能,請造訪 www.android.com。
速度更快、更流暢,回應更迅速
Android 4.1 經過最佳化處理,提供簡單直覺的 UI,帶來最佳效能和最低觸控延遲時間。
為確保影格速率一致,Android 4.1 會在 Android 架構的所有繪圖和動畫中延長「vsync 時間」。所有行動都會依據 16 毫秒的 vsync 活動訊號 (應用程式轉譯、觸控事件、畫面組合及重新整理),鎖定每部裝置運作,因此影格不會過早或落後。
Android 4.1 也會在圖形管道中新增三層緩衝處理,能提供更一致的轉譯體驗,從捲動畫面、分頁和動畫等方面,都能提供順暢的轉譯體驗。
Android 4.1 不僅可藉由同步觸控功能啟動同步處理時間,也會預測手指在畫面重新整理當下的位置,藉此縮短觸控延遲時間。進而產生更具回應與統一的觸控回應體驗。此外,閒置一段時間後,Android 會在下一個觸控事件中套用 CPU 輸入提升,確保不會發生延遲。
工具可協助您確保應用程式達到最佳效能。Android 4.1 可與名為 Systrace 的新工具搭配使用,這項工具會直接從 Linux 核心收集資料,以產生系統活動的整體資訊。系統會以垂直堆疊的時間序列圖表呈現資料,有助於區隔轉譯中斷和其他問題。Android SDK (Tools R20 以上版本) 現已提供這項工具
![](https://developer.android.google.cn/static/images/jb-accessibility-focus-250.png?authuser=0000&hl=zh-tw)
進階無障礙功能
全新的無障礙服務 API 可讓您處理手勢及管理無障礙焦點,讓使用者透過無障礙手勢、配件和其他輸入動作瀏覽螢幕上的元素和導覽按鈕時。Talkback 系統和輕觸探索系統經過重新設計,可透過無障礙焦點更輕鬆地使用,並為開發人員提供一套完整的 API。
無障礙服務可以將自己的教學課程連結至無障礙設定,協助使用者設定及使用服務。
使用標準 View 元件的應用程式會自動沿用支援新的無障礙功能,但程式碼完全不需要變更。採用自訂 View 的應用程式可以使用新的無障礙節點 API,來指出無障礙服務需要的 View 部分。
支援國際使用者
![](https://developer.android.google.cn/static/images/jb-r2l.png?authuser=0000&hl=zh-tw)
雙向文字和其他語言支援
Android 4.1 支援 TextView 和 EditText 元素的雙向文字,可協助您觸及更多使用者。應用程式可以顯示文字,或處理由左至右或由右至左的書寫系統。應用程式可以使用新的阿拉伯文和希伯來文語言代碼和相關字型。
支援的其他語言包括:
- 其他印度語言:卡納達文、泰盧固文和馬拉雅拉姆文
- Unicode 6.0 版的全新表情符號字元
- 為日文使用者提供更優異的字符支援 (在系統語言設為日文的情況下,顯示日文版字符版本)
- 針對 WebView 最佳化的阿拉伯文字符和 TextView 的阿拉伯文字符
- WebView 支援垂直文字,包括 Ruby Text 和其他直向文字字符
- 所有沒有粗體字符的字型現在都可使用合成粗體
使用者可安裝的按鍵對應配置
平台現在支援使用者可安裝的鍵盤對應,例如其他國際鍵盤以及特殊配置類型。根據預設,Android 4.1 提供 27 個鍵盤專用的國際按鍵對應配置,包括 Dvorak 鍵盤。使用者連接鍵盤後,可以前往「設定」應用程式,選取一或多個要使用該鍵盤的按鍵對應配置。輸入時,使用者可以透過快速鍵 (Ctrl + 空格鍵) 切換按鍵對應配置。
您可以建立應用程式,將其他按鍵對應配置發布至系統。APK 會根據標準 Android 按鍵對應格式,加入鍵盤版面配置資源。應用程式可以在資訊清單中為 ACTION_QUERY_KEYBOARD_LAYOUTS 在資訊清單中宣告適當的廣播接收器,為使用者提供其他鍵盤配置。
打造精美使用者介面的新方法
![](https://developer.android.google.cn/static/images/jb-notif-ex1.png?authuser=0000&hl=zh-tw)
開發人員可以建立自訂通知樣式 (如上例所示),以顯示多媒體內容和動作。
可展開的通知
通知向來是 Android 上的獨特熱門功能。開發人員可以運用這項功能,在一般 UI 以外,向使用者顯示通知列的重要或時間相關資訊。
Android 4.1 為 Android 通知架構提供重大更新。應用程式現在可以向使用者顯示更大型、內容更豐富的通知,使用者能以雙指撥動或滑動的方式展開及收合通知。通知支援全新類型的內容 (包括相片)、可設定的優先順序,甚至可包含多項動作。
透過改良的通知建構工具,應用程式可以建立使用較大區域的通知,高度上限為 256 dp。我們提供三種範本通知樣式:
- BigTextStyle — 通知包含多行 TextView 物件。
- BigInboxStyle — 顯示任何類型清單 (例如郵件、標題等) 的通知。
- BigPictureStyle — 展示視覺內容 (例如點陣圖) 的通知。
除了範本樣式以外,你也可以使用任何遠端檢視畫面建立自己的通知樣式。
應用程式最多可為通知新增三種動作,這些動作會顯示在通知內容下方。這些動作可讓使用者以電子郵件或通話等其他方式,直接回應通知中的資訊,不必前往應用程式。
應用程式可透過可展開的通知,輕鬆為使用者提供更多資訊。使用者仍保有控制權,可長按任何通知來取得傳送者的相關資訊,並視需要停用應用程式的進一步通知。
![](https://developer.android.google.cn/static/images/jb-appwidgets.png?authuser=0000&hl=zh-tw)
應用程式小工具可配合主畫面自動調整大小,並在大小變更時載入不同內容。
可調整大小的應用程式小工具
Android 4.1 導入了經過改良的應用程式小工具,可根據使用者在主畫面上放置的位置、使用者將其展開的大小,以及主畫面上的可用空間,自動調整大小。新的 App Widget API 可讓您根據小工具大小變更最佳化應用程式小工具內容。
當小工具變更大小時,系統會通知主機應用程式的小工具供應程式,以便視需要重新載入小工具的內容。舉例來說,小工具可能會顯示更大的、更豐富的圖形,或是其他功能或選項。開發人員仍可隨時掌控大小上限和最小尺寸,並視需要更新其他小工具選項。
您也可以為小工具提供獨立的橫向和直向版面配置,系統會在螢幕方向變更時視情況加載。
您現在可以透過新的繫結 Intent (AppWidgetManager.ACTION_APP**_BIND) 顯示第三方啟動器和其他代管應用程式的應用程式小工具。
簡化工作導覽
Android 4.1 可讓您輕鬆管理使用者從應用程式內使用的「向上」導覽功能,同時確保使用者享有一致的體驗。
您可以為 UI 中個別活動元件定義預期的向上導覽,方法是在應用程式的資訊清單檔案中新增 XML 屬性。在執行階段啟動活動時,系統會從資訊清單檔案擷取向上導覽樹狀結構,然後在動作列中自動建立「向上」導覽導覽。在資訊清單中宣告向上導覽的開發人員,不再需要在執行階段透過回呼管理導覽,但也可以視需要這麼做。
我們還提供新的 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 網路服務探索服務,打造跨平台或多人對戰遊戲和應用程式體驗。
應用程式可透過 Service Discovery 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 DirectTM 認證計畫) 直接探索及配對。Wi-Fi P2P 是分享媒體、相片、檔案、其他類型的資料和工作階段的理想方式,即使沒有行動網路或 Wi-Fi 可用也沒關係。
Android 4.1 則更進一步,更支援 Wi-Fi P2P,新增預先關聯服務探索的 API 支援。預先關聯服務探索功能可讓應用程式在嘗試連線前,透過鄰近裝置取得更實用的資訊。應用程式可以啟動特定服務的探索,並且篩選已偵測到的裝置清單,篩選出實際支援目標服務或應用程式的裝置。
舉例來說,這表示應用程式只能找到「印表機」或有特定遊戲的裝置,而不是探索附近所有 Wi-Fi P2P 裝置。另一方面,您的應用程式可以向其他裝置宣傳所提供的服務,讓其他裝置也能偵測到服務並協商連線。這可大幅簡化使用者的探索和配對作業,讓應用程式更有效地運用 Wi-Fi P2P。
透過 Wi-Fi P2P 服務探索,您可以建立應用程式和多人遊戲,分享相片、影片、遊戲過程、分數和幾乎任何其他內容,完全不需要網路連線或行動網路。您的使用者只能使用直接 p2p 連線進行連線,避免使用行動頻寬。
網路頻寬管理
當裝置連上計量付費網路時 (包括與可攜式無線基地台共用網路),Android 4.1 可協助應用程式妥善管理數據用量。應用程式可以查詢目前的網路是否需要計量付費,再開始執行大型下載作業,這對於使用者而言所費不貲。您現在可以透過 API 清楚掌握哪些網路對資料用量敏感,並據此管理網路活動。
新的媒體功能
媒體轉碼器存取權
Android 4.1 提供低階存取平台硬體和軟體轉碼器。應用程式可以查詢系統,找出裝置可用的低階媒體轉碼器,並以需要的方式加以使用。舉例來說,您現在可以建立媒體轉碼器的多個例項、將輸入緩衝區排入佇列,以及接收傳回的輸出緩衝區。此外,媒體轉碼器架構支援受保護內容。應用程式可以查詢可用的轉碼器,能透過裝置上的 DRM 解決方案播放受保護的內容。
USB 音訊
USB 音訊輸出支援功能可讓硬體廠商建構與 Android 裝置介面的音訊座架等硬體。Android Open Accessory Development Kit (ADK) 也會提供這項功能,讓所有開發人員有機會自行建立硬體。
音訊錄音觸發
Android 現在可根據音軌播放完成,觸發音訊錄音。這項功能在下列情況中非常實用,例如播放一段音調來提示使用者開始說話,以便錄製他們的聲音。這項功能可同步處理錄音,以免錄製目前正在播放的音訊,並防止錄製過程太晚。
多聲道音訊
如果裝置具備透過 HDMI 連接埠輸出多聲道音訊的裝置,Android 4.1 可支援多聲道音訊。多頻道音訊可讓您為遊戲、音樂應用程式和影片播放器等應用程式,為使用者提供互動式多媒體體驗。如果裝置沒有支援的硬體,Android 會自動將音訊重混為裝置支援的頻道數量 (通常是立體聲)。
Android 4.1 還內建對 AAC 5.1 音訊編碼/解碼支援功能。
音訊預先處理
開發人員可以針對錄製的音訊套用預先處理效果,例如套用雜訊抑制功能來改善語音錄音品質、聲學回音消除回音,以及自動控制音量大小不一致的音訊。如果應用程式需要高品質且清晰的錄音品質,建議使用這些預先處理器。
音訊鏈結
MediaPlayer 支援將音訊串流鏈結在一起,讓您不必暫停播放音訊檔案。如果應用程式需要在音訊檔案之間順暢轉換 (例如音樂播放器),才能使用連續曲目或遊戲播放專輯,這項功能就十分實用。
媒體路由器
新的 API MediaRouter、MediaRouteActionProvider 和 MediaRouteButton 提供標準機制和 UI,可讓您選擇播放媒體的位置。內建有線耳機、2dp 藍牙頭戴式耳機和喇叭的支援功能,您也可以自行在應用程式中新增路線規劃選項。
Renderscript 運算
Android 4.1 擴充了 Renderscript 運算能力,為您提供更多彈性。您現在可以在 Renderscript 運算指令碼中取樣紋理,並可使用新的 Pragmas 定義指令碼所需的浮點精確度。這會啟用 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 雲端通訊 (GCM) 服務可讓開發人員傳送簡短訊息資料給 Android 裝置的使用者,而不需運用專屬的同步處理解決方案。
GCM 可有效處理將訊息排入佇列並將訊息傳遞到指定 Android 裝置的所有細節。這項服務支援訊息多點傳播功能,還可透過單一要求同時連線到 1000 部連線裝置。這項服務也支援訊息酬載,也就是說,開發人員除了傳送滴答訊息至裝置上的應用程式以外,還能傳送最多 4K 資料。
Google 雲端通訊可供所有開發人員免費使用,註冊流程也很簡單。如需註冊、下載和說明文件,請參閱 Google 雲端通訊頁面。
應用程式加密
從 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 服務開發人員頁面。