Jelly Bean

Android 4.3

在手機和平板電腦上搭載 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 或透過 Android Native Development Kit (NDK) 提供的原生 API 繫結,充分運用 OpenGL ES 3.0 和相關 EGL 擴充功能。

OpenGL ES 3.0 提供的金鑰新功能可加速提供進階視覺效果、高品質的 ETC2/EAC 紋理壓縮做為標準功能、新版 GLSL ES 陰影語言 (支援整數和 32 位元浮點值)、進階紋理轉譯,以及標準化紋理大小和轉譯緩衝區格式。

您可以使用 OpenGL ES 3.0 API 建立極為複雜、高效率的圖形,並在各種相容的 Android 裝置上執行,您也可以在這些裝置上支援單一的標準紋理壓縮格式。

OpenGL ES 3.0 是依附於基礎圖形硬體的選用功能。Nexus 7 (2013)、Nexus 4 和 Nexus 10 裝置均已提供支援服務。

加強型藍牙連線

與藍牙智慧型裝置和感應器的連線

現在,您可以設計及建構應用程式,與使用藍牙 Smart 技術的新一代小型裝置及感應器互動。

Android 4.3 提供單一標準 API,可用來與藍牙智慧型裝置互動。

Android 4.3 在核心角色中導入了藍牙 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 新增對藍牙 AVRCP 1.3 的支援,讓應用程式能夠與遠端串流媒體裝置進行更豐富的互動。媒體播放器等應用程式可透過 Android 4.0 中推出的遠端控制用戶端 API 使用 AVRCP 1.3。除了在透過藍牙連線的遠端裝置上公開播放控制項外,應用程式現在可以傳輸中繼資料,例如曲目名稱、作曲家,以及其他類型的媒體中繼資料。

AVRCP 1.3 的平台支援是以 Google 與 Broadcom 在 Android 4.2 版中導入的 Bluedroid 藍牙堆疊為基礎。只要使用支援 A2DP/AVRCP 功能的 Nexus 裝置和其他與 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 可讓您在新增、更新和移除通知時進行回呼 (原因可能是使用者關閉通知,或原始應用程式已撤銷該通知)。您可以啟動任何附加至通知的意圖或其動作,以及在系統中關閉此意圖,讓應用程式能夠為通知提供完整的使用者介面。

使用者仍可控管哪些應用程式可接收通知。使用者隨時可以前往「設定」查看哪些應用程式具有通知存取權,並視需要啟用或停用存取權。通知存取權預設為停用,因為應用程式可以使用新的意圖,將使用者直接導向「設定」,在安裝後啟用事件監聽器服務。

查看重疊元素

您現在可以在 View 和 ViewGroup 上方建立透明重疊,以算繪臨時的檢視區塊階層或暫時性動畫效果,而不會幹擾基礎版面配置階層。如果您想建立動畫 (例如將檢視畫面滑動到容器外),或拖曳項目而不影響檢視區塊階層,疊加元素特別實用。

光學邊界版面配置模式

新的版面配置模式可讓您根據 ViewGroup 中的光學邊界 (而非裁剪邊界) 管理檢視區塊的位置。剪輯邊界代表小工具的實際外邊界,新的光學邊界則說明小工具在裁剪邊界內的顯示位置。您可以使用光學邊界版面配置模式,正確對齊使用陰影和光暈等外部視覺效果的小工具。

自訂旋轉動畫類型

應用程式現在可以定義旋轉裝置時,在視窗使用的結束和進入動畫類型。您可以設定視窗屬性,啟用 jump-cutcross-fade標準視窗旋轉。當視窗為全螢幕且不在其他視窗內時,系統就會使用自訂動畫類型。

螢幕方向模式

應用程式可以為活動設定新的螢幕方向模式,確保它們能在裝置翻轉時以正確的方向顯示。此外,應用程式可以利用新模式將螢幕鎖定至目前的方向。如果應用程式使用相機,想在錄影時停用旋轉功能,這就能派上用場。

處理應答短訊的意圖

Android 4.3 導入了全新的公開意圖,可讓任何應用程式處理快速回應,也就是使用者針對來電而傳送的文字訊息,無需接聽來電或解鎖裝置。應用程式可以透過訊息系統監聽意圖,並傳送訊息給呼叫端。意圖包含接收者 (呼叫端) 和訊息本身。

國際使用者支援

Android 4.3 的更多部分已針對 RTL 語言進行最佳化。

RTL 改善項目

Android 4.3 提供 RTL 效能強化項目,以及適用於架構 UI 小工具的更廣泛 RTL 支援,包括 ProgressBar/Spinner 和 ExpandListView。uiautomatorviewer 工具會顯示更多偵錯資訊。此外,更多系統 UI 元件現已支援 RTL 感知功能,例如通知、導覽列和動作列。

為了讓 RTL 文字系統提供更優異的系統體驗,更多預設的系統應用程式現在支援 RTL 版面配置,包括啟動器、快速設定、電話、人員、SetupWizard、時鐘、下載等。

能進行本地化的公用程式

虛擬語言代碼可以讓您輕鬆測試應用程式的本地化內容。

Android 4.3 還包含新的公用程式和 API,可建立更優質的 RTL 字串,並測試本地化 UI。新的 BidiFormatter 類別提供一個用於包裝萬國碼 (Unicode) 字串的簡易 API,讓 RTL 指令碼資料能夠正常顯示 LTR 語言代碼訊息中,反之亦然。為了在應用程式中更廣泛地使用這個公用程式,現在您還可以透過 Android SDK 中的支援套件,為舊版平台版本使用 BidiFormatter API。

為協助您管理所有語言代碼的日期格式,Android 4.3 包含新的 getBestDateTimePattern() 方法,可自動針對您指定的語言代碼產生最佳本地化 Unicode UTS 日期格式。這可讓您為使用者提供更簡便的本地化體驗。

為協助您更輕鬆地在其他語言代碼測試應用程式,Android 4.3 推出了「虛擬語言代碼」做為新的開發人員選項。虛擬語言代碼會模擬與語言代碼或語言群組相關聯的語言、指令碼和顯示特徵。目前,您可以透過Accented English 的虛擬語言代碼進行測試,以便查看 UI 如何使用各種歐洲語言的指令碼變音和字元。

無障礙設計和 UI 自動化

從 Android 4.3 開始,無障礙服務可觀察及篩選按鍵事件,例如處理鍵盤快速鍵,或提供與手勢輸入一致的導覽相似度。服務會收到事件,並可以視需要處理,再將事件傳送至系統或其他安裝的應用程式。

無障礙服務可宣告新功能屬性,以描述其服務的功能和使用的平台功能。舉例來說,開發人員可以宣告篩選按鍵事件、擷取視窗內容、啟用觸控探索,或啟用網頁無障礙功能。在某些情況下,服務必須先宣告功能屬性,才能存取相關的平台功能。系統會使用服務的功能屬性,為使用者產生選用對話方塊,以便在啟動前查看及同意這些功能。

全新的 UI 自動化架構以 Android 4.3 中的無障礙架構為基礎,可模擬使用者動作並介紹螢幕內容,讓測試與裝置的使用者介面互動。透過 UI 自動化架構,您可以執行基本作業、設定畫面旋轉、產生輸入事件、擷取螢幕截圖等。如果您想要在實際的使用者情境中自動執行測試,包括橫跨多個應用程式的動作或序列,這種做法便十分強大。

企業與安全性

WPA2-Enterprise 網路的 Wi-Fi 設定

應用程式現在可以設定連線至 WPA2 企業存取點所需的 Wi-Fi 憑證。開發人員可使用新 API 為企業中使用的驗證方法設定加強式驗證通訊協定 (EAP) 和封裝的 EAP (第 2 階段) 憑證。有權存取及變更 Wi-Fi 的應用程式,可針對各種 EAP 和第 2 階段驗證方法設定驗證憑證。

透過 SELinux 強化 Android 沙箱

Android 現在使用 SELinux,這是 Linux kernel 中的強制存取控制 (MAC) 系統,以擴增 UID 式應用程式沙箱。這可保護作業系統免受潛在安全漏洞的影響。

KeyChain 強化功能

KeyChain API 現在提供一種方法,可讓應用程式確認全系統金鑰是否已繫結至裝置的硬體信任根。這會提供建立或儲存無法匯出裝置私密金鑰的位置,即使發生根層級或核心遭駭也一樣。

Android KeyStore 提供者

Android 4.3 版導入了 KeyStore 提供者和 API,可讓應用程式建立專屬使用金鑰。應用程式可藉由 API 建立或儲存其他應用程式無法看到或使用的私密金鑰,而且可以加入 KeyStore,完全不需要任何使用者互動。

KeyStore 提供者提供與整個系統憑證 (例如將憑證繫結至裝置) 的 KeyChain API 相同的安全性優勢。無法將 KeyStore 中的私密金鑰匯出到裝置外部。

限制 Android 應用程式的 Setuid

/system 分區現已掛接 nosuid,以供開發的潛在程序使用,這會造成 Android 應用程式無法執行 setuid 程式。這麼做可降低根攻擊途徑,以及潛在安全漏洞的可能性。

分析成效的新方式

Systrace 採用新的指令語法,可讓您收集更多類型的剖析資料。

強化 Systrace 記錄功能

Android 4.3 支援升級版 Systrace 工具,不僅更容易使用,還能讓您存取更多類型的資訊,剖析應用程式效能。您現在可以從硬體模組核心函式Dalvik VM 收集追蹤記錄資料,包括垃圾收集和資源載入等。

Android 4.3 版也提供全新的 Trace API,您可以在應用程式中使用 Systrace 起始/結束事件標示要追蹤的特定程式碼區段。執行標示的程式碼區段時,系統會將開始/結束事件寫入追蹤記錄記錄。對應用程式效能的影響微乎其微,因此回報時間資料可讓您準確掌握應用程式的活動。

您可以在 Systrace 輸出檔案中的時間軸以視覺化方式呈現應用程式特定事件,並在其他核心和使用者空間追蹤記錄資料中分析事件。自訂應用程式區段搭配現有的 Systrace 標記,可以讓您透過新的方式瞭解應用程式的效能和行為。

Android 4.3 的螢幕 GPU 剖析。

螢幕 GPU 剖析

Android 4.3 新增了開發人員選項,可協助您分析應用程式的效能,並精確指出任何裝置或模擬器的轉譯問題。

在「剖析 GPU 轉譯」選項中,您現在可以在應用程式執行期間,以視覺化方式呈現應用程式的有效影格速率。您可以選擇將剖析資料顯示為螢幕長條或折線圖,顏色指出建立繪圖指令花費的時間 (藍色)、發出指令 (橘色),以及等待指令完成 (黃色)。系統會持續更新畫面上的圖表,並為每個可見 Activity 顯示圖表,包括導覽列和通知列。

綠線醒目顯示轉譯作業的 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

歡迎使用最新版 Jelly Bean!

Android 4.2 版除了提升效能外,還擁有煥然一新的系統 UI,以及為使用者和開發人員提供的新功能。本文件將簡要說明開發人員有哪些新功能。

如要詳細瞭解新的開發人員 API,請參閱 Android 4.2 API 文件。

如要進一步瞭解 Jelly Bean 使用者適用的全新功能,請前往 www.android.com

更快、更流暢、更靈敏

Android 4.2 建構出 vsync 時間三重緩衝處理減少觸控延遲CPU 輸入提升等效能改善項目,打造出 Android 4.2 版本,並且新增最佳化功能,讓 Android 速度更快。

改善硬體加速 2D 轉譯器,可使常見的動畫 (例如捲動和滑動) 的流暢度和執行速度更快。請特別注意,針對圖層、裁剪和特定形狀 (圓角矩形、圓形和橢圓形) 繪圖最佳化

利用各種 WebView 算繪最佳化功能,網頁捲動體驗就更加順暢,避免出現抖動和延遲的情形。

Android 的 Renderscript Compute 是第一個直接在行動裝置 GPU 上執行的運算平台。這項功能會自動利用 GPU 運算資源,大幅改善圖形和圖片處理效能。凡是在支援的裝置上使用 Renderscript 的應用程式,都能立即享有這項 GPU 整合功能,無須重新編譯

經過改良的新版使用者介面

Android 4.2 版改善了 Jelly Bean 使用者體驗,並將熟悉的 Android 使用者介面模式 (例如狀態列、系統列和通知視窗) 導入所有平板電腦。

所有螢幕大小現在會在頂端顯示狀態列,並提供通知的下拉式選單和新的「快速設定」選單。常見的系統列會顯示在底部,無論用哪隻手都可輕鬆操作按鈕。應用程式匣也適用於所有螢幕大小。

一台平板電腦,多位使用者

現在多位使用者可以共用單一 Android 平板電腦,讓每位使用者都能輕鬆存取專屬使用者空間。使用者只要在螢幕鎖定畫面上輕觸一下,即可切換至自己的聊天室。

在多使用者裝置上,Android 會為每位使用者提供獨立的環境,包括使用者專屬的模擬 SD 卡儲存空間。使用者也有自己的主畫面、小工具、帳戶、設定、檔案與應用程式,而系統會分開保存這些內容。所有使用者共用核心系統服務,但系統會確保每位使用者的應用程式和資料維持獨立。事實上,每位使用者都有自己的 Android 裝置。

使用者隨時可以在自己的環境中安裝及解除安裝應用程式。 為節省儲存空間,只有在其他使用者尚未在裝置上安裝 APK 時,才會下載 APK。如果應用程式已安裝,Google Play 會照常記錄新使用者的安裝作業,但不會下載其他的應用程式副本。因為系統會為每位使用者建立新的執行個體,包括使用者專屬的資料目錄,因此多位使用者可以執行相同的 APK 副本。

對開發人員而言,多使用者支援功能是公開透明的,應用程式不必特別在多使用者環境中正常執行,也不需要在現有或已發布的 APK 中進行任何變更。系統會在每個使用者空間中管理應用程式,就像在單一使用者環境中一樣。

吸引使用者的新方法

日曆螢幕鎖定小工具

您可以擴充應用程式小工具,讓這些小工具在螢幕鎖定時執行,立即存取內容。

螢幕鎖定小工具

在 Android 4.2 中,使用者可以將應用程式小工具直接放置在螢幕鎖定上,不必解鎖就能立即存取喜愛的應用程式內容。使用者可以新增多達五個螢幕鎖定畫面小工具,從已安裝的應用程式提供的小工具中選擇。螢幕鎖定畫面會在專屬面板中顯示各個小工具,讓使用者左右滑動以查看不同的面板和小工具。

如同所有應用程式小工具,螢幕鎖定小工具可顯示任何類型的內容,且可以接受使用者互動。這類元件可完全獨立進行,例如提供播放音樂控制項的小工具,或是讓使用者視需要解鎖應用程式後直接前往應用程式中的活動。

對開發人員來說,螢幕鎖定小工具是吸引使用者的新絕佳方式。這種廣告能讓您將內容放在使用者較常看到的位置,也因此有更多機會將使用者直接帶往您的應用程式。

如要善用這項新功能,您可以建構新的應用程式小工具,或擴充現有的主畫面小工具。如果您的應用程式已經包含主畫面小工具,您無須費心將小工具擴充至螢幕鎖定畫面。為了帶給使用者最佳體驗,您可以更新小工具,使其在可用的情況下使用完整的螢幕鎖定畫面區域,並在小螢幕上視需要調整大小。也可以為小工具新增特別實用或便利的功能。

Daydream

Daydream 是一種互動式螢幕保護程式模式,會在使用者裝置插入座架或充電時啟動。在這個模式下,系統會啟動裝置螢幕保護程式做為裝置螢幕保護程式,這是一種由已安裝應用程式提供的遠端內容服務。使用者可以透過「設定」應用程式啟用 Daydream,然後選擇要顯示的 Daydream。

Daydream 結合動態桌布和主畫面小工具的最佳功能,但更強大。這些程式碼可讓您在全新的情境中提供任何種類的內容,以及使用者互動,例如快速瀏覽相片、播放音訊或影片,或輕觸一下即可直接進入應用程式。

由於 Daydream 可以在裝置充電或充電時自動啟動,因此讓應用程式也能支援新型使用者體驗,例如精簡/展示模式、示範或資訊站模式,以及「注意力模式」,完全不需要特殊硬體。

Daydream 螢幕保護程式模式

只要使用 Daydream,就能建立功能強大的互動式螢幕保護程式,用來顯示各種內容。

Daydream 與「活動」類似,而且可執行 Activity 所能進行的任何操作,包括轉譯 UI 階層 (不使用 RemoteView),以及直接使用 Canvas、OpenGL 和 SurfaceTexture 等進行繪圖。可以播放影片和音訊,甚至接受使用者互動。但是, Daydream 並不是活動,因此不會影響返回堆疊或顯示在「近期使用」中,也無法直接從應用程式啟動。

實作 Daydream 的過程相當簡單,您可利用自己為應用程式其他部分建立的 UI 元件和資源。您可以在應用程式中提供多個日常活動,也可以為每個應用程式提供不同的內容和顯示設定。

外接螢幕支援

Android 4.2 導入了跨越鏡像的外部螢幕平台支援,應用程式現在可以將專屬內容鎖定在連接至 Android 裝置的一或多部螢幕。應用程式可基於這一點,為使用者提供新型互動和娛樂體驗。

多媒體廣告管理員

應用程式會透過新的螢幕管理工具系統服務與螢幕互動。您的應用程式可以列舉螢幕並檢查每種裝置的功能,包括大小、密度、顯示名稱、ID、安全影片的支援功能等。應用程式也能在新增或移除螢幕或功能有變動時接收回呼,以便在外部螢幕上更妥善地管理內容。

簡報視窗

為了方便在外部螢幕上顯示內容,架構提供名為「簡報」的新 UI 物件,是一種對話方塊,代表特定外部螢幕上的應用程式內容視窗。應用程式只會將要使用的螢幕、視窗主題以及任何要顯示的獨特內容提供給您。簡報會處理加載資源,以及依據指定螢幕的特徵轉譯內容。

您可以使用簡報完全控制兩個以上的獨立螢幕。

呈現功能可讓應用程式完全控管遠端顯示視窗及其內容,並讓您根據使用者輸入事件 (例如按鍵、手勢、動作事件等) 加以管理。您可以使用所有一般工具,在簡報中建立 UI 並轉譯內容,包括建構任意檢視區塊階層,以及使用 SurfaceView 或 SurfaceTexture 直接繪製到視窗,以便串流內容或相機預覽畫面。

偏好的多媒體選項

如有多個外部螢幕可供使用,您可以依照需求建立簡報,數量不限,每一種螢幕都顯示獨特內容。在許多情況下,您可能只想在單一外部螢幕上顯示內容,但一律在最適合簡報內容時顯示。因此,系統可協助應用程式選擇最適合的螢幕。

為了找出最適合的螢幕,應用程式可以查詢螢幕管理工具的系統偏好呈現顯示畫面,並在該顯示變更時接收回呼。或者,您也可以使用 Android 4.2 中擴充的媒體路由器服務,在系統影片路徑變更時接收通知。根據預設,應用程式可在主要 Activity 中顯示內容,直到附加偏好呈現畫面為止,之後應用程式可以在偏好螢幕上自動切換至簡報內容。您的應用程式也可以使用媒體路由器的 MediaRouteActionProvider 和 MediaRouteButton,提供標準顯示選擇 UI。

受保護的內容

如果應用程式會處理受保護或加密的內容,Display API 現在會回報附加螢幕的安全視訊功能。應用程式會查詢螢幕,確認螢幕是否提供安全的視訊輸出內容或提供受保護的圖像緩衝區,然後選擇適當的內容串流或解碼,以便顯示內容。為提升 SurfaceView 物件的安全性,應用程式可以設定安全標記,以指出內容一律不得出現在螢幕截圖或不安全的顯示輸出內容中,即使鏡像翻轉也一樣。

無線螢幕分享

從 Android 4.2 開始,支援裝置的使用者可以使用 Wi-Fi 螢幕 (符合 MiracastTM 認證計畫的點對點無線顯示解決方案) 透過 Wi-Fi 連線至外部螢幕。連上無線螢幕後,使用者即可將任何類型的內容串流至大螢幕,包括相片、遊戲、地圖等。

應用程式可利用無線螢幕的方式與其他外部螢幕相同,且無須額外處理。系統會管理網路連線,並視需要將您的呈現畫面或其他應用程式內容串流至無線螢幕。

原生 RTL 支援

RTL 版面配置鏡像

開發人員現在可以針對 RTL 語言鏡像顯示版面配置

Android 4.2 導入針對 RTL (由右至左) 版面配置的完整原生支援,包括版面配置鏡像。有了原生 RTL 支援功能,所有使用者都能提供相同的應用程式體驗,無論使用者的語言採用由右至左書寫的指令碼,還是由左至右閱讀文字,都沒問題。

當使用者將系統語言切換為從右到左的指令碼時,系統現在除了針對讀取和字元輸入的文字元素出價建立出價鏡射,現在還提供應用程式 UI 版面配置和所有檢視畫面小工具的自動鏡像功能。

在應用程式中就能輕鬆運用 RTL 版面配置鏡像。如果您想讓系統複製應用程式,只要在應用程式資訊清單中宣告新的屬性,並將所有「左/右」版面配置屬性變更為新的「開始/結束」等項目即可。接著,系統會視情況處理 UI 的鏡像與顯示作業。

為了精確控制應用程式 UI,Android 4.2 提供新的 API,可讓您管理 View 元件中的版面配置方向、文字方向、文字對齊方式、重力和語言代碼方向。使用從右到左指令碼時,您甚至可以建立自訂的版面配置、可繪項目和其他資源的自訂版本。

為了協助您對自訂由右至左的版面配置進行偵錯和最佳化,現在階層檢視器工具現在可讓您查看階層內所有檢視區塊的開始/結束屬性、版面配置方向、文字方向和文字對齊方式。

國際語言強化功能

Android 4.2 針對國際使用者提供多種字型和字元最佳化

  • 對韓國使用者來說,有新的字型選擇 — Nanum (나눔🎉?發揮最大奴委) 哥德式;這是專為韓文指令碼設計的萬國碼 (Unicode) 字型。
  • 改善 WebView 中顯示的日文垂直文字支援。
  • 改善印度、泰文、阿拉伯文和希伯來文預設字型的字型調和位置。

預設的 Android 鍵盤還包含一組更新後的字典:

  • 改良的法文字典 (支援大範圍語言)、英文和俄文
  • 丹麥文、希臘文、芬蘭文、立陶宛文、拉脫維亞文、波蘭文、斯洛維尼亞文、塞爾維亞文、瑞典文、土耳其文的新字典

製作精美 UI 的新方法

巢狀片段

如要進一步控制 UI 元件,並使其更模組化,Android 4.2 可讓您在 Fragments 內建立 Fragment 巢狀結構。針對任何片段,您可以使用全新的 Fragment Manager,在檢視區塊階層中插入其他片段做為子節點。

您可以透過許多方式使用巢狀片段,但在本身動態且可重複使用的 UI 元件中實作動態和可重複使用的 UI 元件,這些片段特別實用。舉例來說,如果您使用 ViewPager 建立會左右滑動的片段,您現在可以在檢視頁面器的每個片段中插入片段。

為方便您在應用程式中更廣泛運用巢狀 Fragment,這項功能已新增至最新版本的 Android 支援資料庫

無障礙功能

系統現在可協助無障礙服務在觸控探索模式下區分觸控探索和無障礙手勢。使用者輕觸螢幕時,系統會通知服務已啟動一般觸控互動。然後追蹤觸控互動速度,並判斷是否為觸控探索 (緩慢) 或無障礙手勢 (快速),並通知服務。觸控互動結束時,系統會通知服務。

系統提供全新的全域無障礙選項,讓無障礙服務根據使用者的動作開啟「快速設定」選單。Android 4.2 中也新增了一個適用於點字裝置的全新無障礙功能意見回饋類型。

為了讓無障礙服務深入瞭解 View 的意義,以便提高無障礙性,架構提供新的 API,將 View 關聯為另一個 View 的標籤。每個 View 的標籤可透過 AccessibilityNodeInfo 提供無障礙服務。

經過改良的 HDR 相機

為提升效能,Android 4.2 推出了新的相機硬體介面和管道。在支援的裝置上,應用程式可以使用新的 HDR 相機場景模式,透過高動態範圍成像技術拍照。

此外,該架構現在提供 API,可讓應用程式檢查是否能停用相機快門音效。然後,應用程式可讓使用者停用音效,或是選擇其他音效來取代標準快門音效 (建議使用)。

Renderscript 計算

在 Android 4.2 中,Renderscript Compute 推出了新的指令碼功能、新的最佳化功能和直接 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 就能最佳化指令碼的執行作業,而如果個別執行指令碼,則無法以這種方式達到最佳執行效果。

算繪最佳化圖表

Renderscript 圖片處理基準測試在不同的 Android 平台版本 (Android 4.0、4.1 和 4.2) 上執行,且僅支援 Galaxy Nexus 裝置的 CPU。

Renderscript 圖片處理基準,比較透過 GPU 和 CPU 執行的作業,以及僅在相同 Nexus 10 裝置上透過 CPU 執行的作業。

如要執行 Renderscript 作業的有向非循環圖,可以使用建構工具類別建立定義作業的指令碼群組。在執行時,Renderscript 會將執行順序和這些作業之間的連線最佳化,以獲得最佳效能。

持續改善的最佳化功能

使用 Renderscript 進行運算時,應用程式可受益於 Renderscript 引擎本身中的效能和最佳化改善,而不影響應用程式程式碼或重新編譯。

隨著最佳化的改善,您的作業執行速度更快,且能在更多晶片上執行,完全不需要您執行任何動作。右側圖表列出了持續改善 Android 平台各版本的 Renderscript 最佳化效能,而改善的效能表現。

GPU 運算

Renderscript Compute 是第一個直接在行動裝置 GPU 上執行的運算平台。系統現在會盡可能自動利用 GPU 運算資源來改善效能。透過 GPU 整合,即使是最複雜的圖形或圖片處理作業,也能大幅提高效能。

凡是在支援的裝置上使用 Renderscript 的應用程式,皆可立即享有這項 GPU 整合服務,無須重新編譯。Nexus 10 平板電腦是首款支援這項整合功能的裝置。

新的內建開發人員選項

Android 4.2 系統包含各種新的開發人員選項,可讓您更輕鬆建立外觀出色的應用程式。新選項會提供透過任何裝置或模擬器偵錯及剖析應用程式的功能。

在搭載 Android 4.2 的裝置上,開發人員選項預設為隱藏,以便為使用者提供更優質的體驗。只要在任何相容的 Android 裝置上,依序輕觸「Settings」 >「About phone」 >「Build number」,即可隨時顯示開發人員選項。

新的開發人員選項可讓您以更多方式在裝置上分析及偵錯。

Android 4.2 的新開發人員選項包括:

  • 取得錯誤報告:立即擷取螢幕畫面,並將裝置狀態資訊轉儲到本機檔案儲存空間,然後附加到新的外寄電子郵件訊息中。
  • 電源選單錯誤報告:在裝置電源選單和快速設定中新增選項,可用來取得錯誤報告 (請參閱上文)。
  • 透過 USB 驗證應用程式:可讓您停用透過 USB 進行側載的應用程式檢查功能,同時繼續檢查來自其他來源 (例如瀏覽器) 的應用程式。這麼做可以加快開發程序,同時保持安全防護功能。
  • 顯示硬體圖層更新 — 硬體圖層在更新時閃爍綠燈。
  • 「Show GPU overdraw」 (顯示 GPU 過度繪製):醒目顯示 GPU 過度繪製區域。
  • 「Force 4x MSAA」:在 Open GL ES 2.0 應用程式中啟用 4x MSAA。
  • 模擬次要顯示器:在目前畫面上建立一或多個非安全的重疊視窗,做為模擬的遠端顯示畫面。您可以控制模擬螢幕的大小和密度。
  • 「Enable OpenGL traces」:使用 Logcat、Systrace 或 glGetError 的 Calltack 追蹤 OpenGL 執行。

全新平台技術

Android 4.2 內含多種全新和強化的平台技術,可支援多種硬體裝置上的創新通訊用途。在大多數情況下,新的平台技術和強化項目不會直接影響應用程式,因此您不需要進行任何修改,即可享受這些功能。

安全性增強項目

每個 Android 版本都含有數十種安全性強化功能,可有效保護使用者。以下是 Android 4.2 中的部分強化項目:

  • 應用程式驗證:使用者可選擇啟用「驗證應用程式」,並讓應用程式在安裝前通過應用程式驗證器審查。當使用者嘗試安裝可能有害的應用程式時,應用程式驗證功能可以提醒使用者;如果應用程式特別糟糕,可能會封鎖安裝作業。
  • 進一步控管付費簡訊:如果應用程式嘗試將簡訊傳送至使用付費服務的短碼,且該程式碼可能會產生額外費用,Android 就會發出通知。使用者可以選擇是否允許應用程式傳送訊息或封鎖訊息。
  • 永久連線的 VPN — 您可以設定 VPN,讓應用程式在建立 VPN 連線前無法使用網路。這樣做可防止應用程式透過其他網路傳送資料。
  • 憑證綁定 — libcore SSL 實作現在支援憑證綁定。如果憑證未鏈結至一組預期的憑證,固定的網域會收到憑證驗證失敗。這可防止憑證授權單位遭到盜用。
  • 改善 Android 權限的顯示方式:我們已將權限分門別類,讓使用者更容易理解。在權限審查期間,使用者可以按一下權限,查看有關權限的詳細資訊。
  • installd 重 ening:安裝的 Daemon 不會以超級使用者的身分執行,減少潛在的 Root 權限提升漏洞。
  • init 指令碼強化 — init 指令碼現在套用 O_NOFOLLOW 語意,以防範符號連結相關攻擊。
  • FORTIFY_SOURCE:Android 現已實作 FORTIFY_SOURCE。系統程式庫和應用程式會使用這項資訊,避免記憶體損毀。
  • ContentProvider 預設設定 - 目標 API 級別 17 的應用程式預設會針對每個 ContentProvider 將「匯出」設為「false」,藉此減少應用程式的預設受攻擊面。
  • 加密編譯:修改 SecureRandom 和 Cipher.RSA 的預設實作,以便使用 OpenSSL。使用 OpenSSL 1.0.1 為 TLSv1.1 和 TLSv1.2 新增 SSLSocket 支援
  • 安全性修正 — 升級有安全修正的開放原始碼程式庫包括 WebKit、libpng、OpenSSL 和 LibXML。Android 4.2 也針對 Android 專屬的安全漏洞進行修正。這些漏洞的相關資訊已提供給 Open Handset Alliance 成員,Android 開放原始碼計畫也提供了修正程式。為提升安全性,部分搭載舊版 Android 的裝置也可能包含這些修正項目。

新藍牙堆疊

Android 4.2 推出了全新的藍牙堆疊,最適合用於 Android 裝置。全新藍牙堆疊是 Google 與 Broadcom 合作開發的一項新藍牙堆疊,會取代以 BlueZ 為基礎的堆疊,並提升相容性和可靠性。

低延遲音訊

從使用 OpenSL ES、Soundpool 和音調產生器 API 著手改善 Android 4.1 版本的音訊輸出延遲,Android 4.2 改善了低延遲音訊播放支援。這些改善項目取決於硬體支援,因此如果裝置提供這些低延遲音訊功能,就能透過硬體功能常數,讓應用程式支援應用程式。我們提供新的 AudioManager API,可查詢原生音訊取樣率和緩衝區大小,以在聲明此功能擁有權的裝置上使用。

全新相機硬體介面

Android 4.2 推出了新的相機堆疊實作。相機子系統包含相機管道中的元件實作,例如透過處理控制項進行連拍模式擷取。

全新 NFC 硬體介面和控制器介面

Android 4.2 根據 NFC-Forum 的 NCI 標準,引進了控制器的相關支援。NCI 可在 NFC 控制器 (NFCC) 和裝置主機之間提供標準通訊協定。而在 Google 和 Broadcom 之間合作開發的全新 NFC 堆疊,則支援這個通訊協定。

Dalvik 執行階段最佳化

Dalvik 執行階段針對更多架構提供增強的效能和安全性:

  • Intel 和 MIPS JIT 支援的 x86 JIT 支援 (MIPS)
  • 針對大小超過 512 MB 的裝置最佳化垃圾收集參數
  • SecureRandom 和 Cipher.RSA 的預設實作現在使用 OpenSSL
  • 透過 OpenSSL 1.0.1 對 TLSv1.1 和 TLSv1.2 的支援
  • 新增對 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 會將 vsync 時間擴充至 Android 架構完成的所有繪圖和動畫。所有作業都會在鎖定階段執行,共 16 毫秒的 vsync 活動訊號 (應用程式轉譯、觸控事件、畫面組合和螢幕重新整理),因此影格不會比過去或落後。

Android 4.1 也在圖形管道中新增三重緩衝處理,以讓算繪作業更一致,包括捲動、分頁和動畫等,讓所有操作更順暢。

Android 4.1 版本不只透過「同步處理觸控」與自動同步時間,還可實際「預測」手指在螢幕重新整理時的移動位置,縮短觸控延遲時間。如此一來,觸控回應效果會更加反應一致。此外,在閒置一段時間後,Android 會在下一個觸控事件套用 CPU 輸入提升,確保沒有延遲。

工具可協助您確保應用程式發揮最佳成效。Android 4.1 版可與名為 systrace 的新工具搭配使用,從 Linux kernel 直接收集資料,進而全面掌握系統活動的整體情況。資料會以垂直堆疊的時間序列圖表呈現,藉此區隔轉譯中斷和其他問題。Android SDK (Tools R20 以上版本) 現已提供這項工具

進階無障礙功能

全新的無障礙服務 API 可讓您在使用者透過無障礙手勢、配件和其他輸入內容瀏覽螢幕上的元素和導覽按鈕時,處理手勢及管理無障礙功能焦點。TalkBack 系統和觸控探索經過重新設計,不僅更容易使用無障礙焦點,還提供完整的 API 組合供開發人員使用。

無障礙服務可以將自己的教學課程連結至無障礙設定,協助使用者設定及使用服務。

使用標準 View 元件的應用程式會自動沿用全新無障礙功能的支援功能,無需對程式碼做出任何變更。使用自訂 View 的應用程式可以使用新的無障礙節點 API,指出無障礙服務感興趣的部分。

國際使用者支援

雙向文字和其他語言支援

Android 4.1 版支援 TextView 和 EditText 元素中的雙向文字,協助您觸及更多使用者。應用程式可以在文字書寫或處理由左至右的指令碼編輯文字,或處理文字編輯作業。應用程式可以使用新的阿拉伯文和希伯來文語言代碼,以及相關聯的字型。

其他新的語言支援類型包括:

  • 其他印度語言:卡納達文、泰盧固文和馬拉雅拉姆文
  • Unicode 6.0 版本中的新表情符號字元
  • 為日文使用者提供更佳的字符支援 (在系統語言設為日文時,顯示日文版字符)
  • 針對 WebView 進行最佳化的阿拉伯字符,並針對 TextView 的阿拉伯字符進行最佳化
  • WebView 支援垂直文字,包括 Ruby Text 和其他垂直文字字符
  • 沒有專屬粗體字符的所有字型現在都可使用合成粗體

使用者可安裝的按鍵對應配置

該平台現已支援使用者可安裝的鍵盤對應配置,例如額外的國際鍵盤和特殊的版面配置類型。根據預設,Android 4.1 提供 27 個鍵盤的國際按鍵對應配置,包括 Dvorak。連接鍵盤時,使用者可以前往「設定」應用程式,選取一或多個要用於該鍵盤的按鍵對應配置。輸入時,使用者可以透過快速鍵 (ctrl-space) 切換按鍵對應配置。

您可以建立應用程式,將其他按鍵對應配置發布至系統。根據標準 Android 按鍵對應配置格式,APK 會包含鍵盤配置資源。應用程式可在資訊清單中宣告 ACTION_QUERY_KEYBOARD_LAYOUTS 適用的廣播接收器,為使用者提供其他鍵盤版面配置。

製作精美 UI 的新方法

開發人員可以建立自訂通知樣式 (如上例所示),以顯示多媒體內容和動作。

可展開的通知

通知一直是 Android 上獨一無二的熱門功能。開發人員可以在應用程式的一般使用者介面之外,使用這些功能將重要或時間資訊置於通知列,

Android 4.1 為 Android 通知架構帶來重大更新。應用程式現在可以顯示更豐富且更豐富的通知,讓使用者用雙指撥動或滑動即可展開或收合。通知支援新類型的內容 (包括相片)、可設定優先順序,甚至能執行多項動作。

透過改良的通知建構工具,應用程式可以建立使用較大區域的通知 (高度最高 256 dp)。有三種範本通知樣式可以使用:

  • BigTextStyle — 包含多行 TextView 物件的通知。
  • BigInboxStyle — 顯示任何類型清單 (例如郵件、標題等) 的通知。
  • BigPictureStyle - 顯示視覺內容 (例如點陣圖) 的通知。

除了範本樣式之外,您還可以使用任何遠端檢視建立自己的通知樣式。

應用程式最多可以為通知新增三個動作,這些動作會顯示在通知內容下方。這些動作可讓使用者以其他方式 (例如電子郵件或電話) 直接回應通知中的資訊,不必前往應用程式。

透過展開式通知,應用程式可以為使用者提供更多資訊,輕鬆滿足使用者的需求。使用者可保有控制權,只要長按任何通知,即可取得寄件者的相關資訊,並視需要停用應用程式的其他通知。

應用程式小工具可配合主畫面自動調整大小,並在大小變化時載入不同內容。

可調整大小的應用程式小工具

Android 4.1 版導入了改良的應用程式小工具,可根據使用者放在主畫面上的位置、使用者展開的按鈕大小,以及主畫面上的可用空間大小,自動調整大小。新的 App Widget API 可讓您善用這項功能,在小工具大小改變時最佳化應用程式小工具內容

當小工具變更大小時,系統會通知主應用程式的小工具供應程式,以便視需要重新載入小工具中的內容。例如,小工具可以顯示更大、更豐富的圖形或其他功能或選項。開發人員仍可控制最大和最小尺寸,並視需要更新其他小工具選項。

您也可以為小工具提供獨立的橫向和直向版面配置,讓系統在螢幕方向變更時視情況加載小工具。

應用程式小工具現在可透過新的繫結意圖 (AppWidgetManager.ACTION_APPRM_BIND) 顯示在第三方啟動器和其他代管應用程式中。

簡化工作導覽流程

Android 4.1 可讓您輕鬆管理使用者可在應用程式內查看的「向上」導覽,確保使用者享有一致的體驗。

您可以在應用程式的資訊清單檔案中新增 XML 屬性,為 UI 的個別活動元件定義預期的向上導覽。啟動活動時,系統會從資訊清單檔案中擷取向上導覽樹狀結構,並自動在動作列中建立「向上」預設導覽機制。在資訊清單中宣告向上導覽的開發人員不再需要透過回呼管理導覽功能,不過如有需要也可以這麼做。

此外,還提供一個新的 TaskStackBuilder 類別,可讓您快速建立合成工作堆疊以立即展開,或在從 PendingIntent 啟動 Activity 時使用。當使用者透過遠端檢視畫面啟動活動 (例如透過主畫面小工具和通知) 啟動活動時,建立綜合工作堆疊特別有用,因為開發人員可以利用這個堆疊,在返回導覽中提供一致的受管理體驗。

簡易的活動啟動動畫

您可以使用新的輔助類別 ActivityOptions,建立並控制啟動活動時顯示的動畫。透過輔助類別,您可以指定在活動啟動時使用的自訂動畫資源,也可以要求新的縮放動畫,從您在畫面上指定的任何矩形開始,並且視需要包含縮圖點陣圖。

轉換至亮光和全螢幕模式

View 中的新的系統 UI 旗標可讓您從一般應用程式 UI (顯示動作列、導覽列和系統列顯示)、「淺色模式」(隱藏狀態列、動作列和導覽列調暗) 或「全螢幕模式」(隱藏狀態列、動作列和導覽列) 的轉換模式。

新的遠端可遠端檢視畫面類型

開發人員現在可在主畫面小工具和通知中使用 GridLayoutViewStub 檢視畫面。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 聯盟的 Wi-Fi DirectTM 認證計畫)。即使沒有行動網路或 Wi-Fi 可用,Wi-Fi P2P 也可以用來分享媒體、相片、檔案,以及其他類型的資料和工作階段。

Android 4.1 進一步運用 Wi-Fi P2P,新增預先相關服務探索的 API 支援。透過預先相關聯的服務探索功能,您的應用程式在嘗試連線前,可以從附近裝置取得更實用的服務資訊。應用程式可以啟動特定服務的探索作業,並篩選出確實支援目標服務或應用程式的裝置清單。

舉例來說,這表示您的應用程式只能找到「印表機」或具有特定遊戲的裝置,無法尋找附近的所有 Wi-Fi P2P 裝置。另一方面,您的應用程式可以宣傳其提供的服務,讓其他裝置可以發現該服務,然後協商連線內容。這可大幅簡化使用者尋找和配對作業的流程,讓應用程式能夠更有效地運用 Wi-Fi P2P。

有了 Wi-Fi P2P 服務探索功能,你可以建立應用程式和多人遊戲來分享相片、影片、遊戲過程、比分或其他各種資訊,而且完全不需要網際網路或行動網路。您的使用者只能使用 P2p 直接連線,不需要使用行動頻寬。

網路頻寬管理

當裝置連上計量付費網路 (包括透過可攜式無線基地台共用網路) 時,Android 4.1 可協助應用程式適當管理數據用量。應用程式可以查詢目前的網路是否經過計量付費,再開始進行大型下載作業 (對使用者而言費用可能相對昂貴)。您現在可以透過 API,清楚掌握哪些網路對資料使用較為敏感,並據此管理網路活動。

全新媒體功能

媒體轉碼器存取權

Android 4.1 針對平台硬體和軟體轉碼器提供低階存取權。應用程式可以查詢系統,找出裝置上可用的低階媒體轉碼器,然後視需要使用。舉例來說,您現在可以建立媒體轉碼器的多個執行個體、佇列輸入緩衝區,並透過傳回輸出緩衝區。此外,媒體轉碼器架構也支援受保護的內容。應用程式可以查詢可用的轉碼器,並透過裝置可用的數位版權管理解決方案播放受保護的內容。

USB 音訊

USB 音訊輸出支援可讓硬體供應商打造可與 Android 裝置互動的硬體,例如音訊座架。Android Open 配件開發套件 (ADK) 也會提供這項功能,讓所有開發人員都能自行打造硬體。

觸發音訊錄音

Android 現在可讓您根據音訊播放長度觸發音訊錄音。這項功能在各種情況下 (例如播放語氣提示使用者開始錄製語音) 時相當實用。這項功能可同步處理錄音檔,避免錄製正在播放的音訊,避免錄音太晚開始錄製。

多頻道音訊

在透過 HDMI 通訊埠輸出硬體多頻道音訊的裝置上,Android 4.1 支援多頻道音訊。多頻道音訊可讓您為使用者提供豐富的媒體體驗,例如遊戲、音樂應用程式和影片播放器。如果裝置沒有支援的硬體,Android 會自動將音訊縮減成裝置支援的聲道數 (通常是立體聲)。

此外,Android 4.1 版還內建支援 AAC 5.1 音訊編碼/解碼的功能。

音訊預先處理

開發人員可以對錄製的音訊套用預先處理效果,例如針對錄製的音訊套用雜訊抑制功能,改善語音錄音品質、降低聲聲回音,以及自動增益控制音量不一致的音訊。這些預先處理器適用於需要錄製高品質音訊且清晰錄音的應用程式。

音訊鏈結

MediaPlayer 支援將音訊串流鏈結在一起,讓您以不中斷的方式播放音訊檔案。如果應用程式需要在音訊檔案 (例如音樂播放器) 間流暢切換音訊版本,以便搭配連續曲目或遊戲播放專輯,這項功能就能派上用場。

媒體路由器

全新的 API MediaRouter、MediaRouteActionProvider 和 MediaRouteButton 提供標準機制和使用者介面,讓您選擇播放媒體的位置。有線耳機和 A2dp 藍牙頭戴式耳機和喇叭皆內建支援,您可以在自己的應用程式中新增自己的路線規劃選項。

Renderscript 計算

Android 4.1 擴充了 Renderscript 運算功能,讓您享有更多彈性。您現在可以在 Renderscript 運算指令碼中範例紋理,並使用新的 pragmas 來定義指令碼所需的浮點精確度。這樣一來,您就能啟用 NEON 指令,例如使用完整 IEEE 754-2008 標準對 CPU 路徑執行的向量數學運算。

您現在可以在以 x86 為基礎的模擬器和硬體裝置上,對 Renderscript 運算指令碼進行偵錯。您也可以在單一 Renderscript 來源檔案中定義多個根樣式核心。

Android 瀏覽器和 WebView

在 Android 4.1 中,Android 瀏覽器和 WebView 包含下列強化項目:

  • 改善 HTML5 影片使用者體驗,包括隨點即播/暫停,以及從內嵌到全螢幕模式順暢轉換。
  • 改善轉譯速度並降低記憶體用量,改善捲動和縮放效能。
  • 改善 HTML5/CSS3/Canvas 動畫效能。
  • 改善文字輸入功能。
  • 已更新 JavaScript 引擎 (V8),以提升 JavaScript 效能。
  • 支援已更新的 HTML5 媒體擷取規格 (輸入 type=file 元素的「擷取」屬性)。

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 服務開發人員頁面。