Android KitKat

在手機和平板電腦上搭載 Android 4.4

歡迎使用 Android 4.4 (KitKat)!

Android KitKat 為所有平台的更多裝置帶來 Android 所有最創新、最精美、最實用的功能。

本文件為開發人員提供最新資訊。

如要進一步瞭解消費者專用 KitKat,請前往 www.android.com

打造適合所有人的 Android

Android 4.4 經過特別設計,能夠針對比以往更多的更多裝置執行快速、流暢、回應速度和回應體驗,包括全球數百萬個最低 512 MB RAM 的入門級裝置。

KitKat 簡化了每個主要元件,藉此降低記憶體用量,並推出新的 API 和工具,協助您打造兼具回應能力與記憶體效率的創新應用程式。

建構新一代 Android 裝置的原始設備製造商 (OEM) 可利用針對性建議和選項,有效率地執行 Android 4.4,即使在記憶體不足的裝置上也能正常運作。Dalvik JIT 程式碼快取調整、核心相同頁面合併 (KSM)、切換至 zRAM,以及其他最佳化功能,都有助於管理記憶體。透過新的設定選項,原始設備製造商 (OEM) 可利用新的設定選項調整程序的記憶體不足、設定圖形快取大小,以及控管記憶體收回情形等。

在 Android 中,跨系統的變更可提升記憶體管理效率,並減少記憶體用量。系統會調整核心系統程序減少使用的堆積,現在也會更主動保護系統記憶體,避免佔用大量 RAM 的應用程式。當多項服務同時啟動 (例如網路連線變更時),Android 現在會從小型群組依序啟動服務,避免記憶體需求達到高峰。

對開發人員來說,Android 4.4 版本可協助您在各種裝置上提供效率卓越且反應靈敏的應用程式。全新的 API ActivityManager.isLOWRamDevice() 可讓您根據裝置的記憶體設定調整應用程式的行為。您可以根據您想在入門層級裝置支援的用途,修改或停用大型記憶體功能。如要進一步瞭解如何針對低記憶體裝置最佳化應用程式,請按這裡

而且還提供強大的新工具,方便您深入瞭解應用程式的記憶體用量。procstats 工具詳細資料了長期記憶體用量,並為前景應用程式和背景服務提供執行時間和記憶體用量。此外,系統也提供裝置端檢視畫面做為新的開發人員選項。經過強化的meminfo 工具,您就能輕鬆找出記憶體趨勢和問題,並提供先前無可見的額外記憶體負擔。

透過主機卡片模擬的全新 NFC 功能

Android 4.4 引進新的平台,支援透過主機卡片模擬 (HCE) 安全進行 NFC 交易,包括付款、會員方案、卡片存取權、大眾運輸票證和其他自訂服務。有了 HCE,Android 裝置上的任何應用程式都能模擬 NFC 智慧型卡片,讓使用者輕觸應用程式即可以自己選擇的應用程式展開交易,過程中完全不需要透過裝置中佈建的安全元素 (SE)。應用程式也可以使用新的閱讀器模式,做為 HCE 卡和其他 NFC 交易的讀卡機。

感應式付款標誌

Android HCE 可模擬採用 ISO/IEC 7816 標準的智慧型卡片,並使用感應式 ISO/IEC 14443-4 (ISO-DEP) 通訊協定進行傳輸。現今許多系統都使用這些卡片,包括現有的 EMVCO NFC 付款基礎架構。Android 會使用 ISO/IEC 7816-4 中定義的應用程式 ID (AID),將交易轉送至正確的 Android 應用程式。

應用程式會在資訊清單檔案中宣告自身支援的 AID,以及指出可用支援類型的類別 ID (例如「付款」)。如有多個應用程式在同一類別中支援相同的 AID,Android 會顯示對話方塊,讓使用者選擇要使用的應用程式。

使用者在銷售點感應式刷卡機使用感應付款功能時,系統會擷取偏好的 AID,並將交易轉送到正確的應用程式。應用程式會讀取交易資料,並使用任何本機或網路式服務進行驗證,然後完成交易。

如要使用 Android HCE,裝置必須具備 NFC 控制器。大多數的 NFC 控制器已廣泛支援 HCE,可為 HCE 和 SE 交易提供動態支援。支援 NFC 的 Android 4.4 裝置隨附「感應支付」功能,方便您透過 HCE 輕鬆付款。

列印架構

現在 Android 應用程式可以透過 Wi-Fi 或雲端託管服務 (例如 Google 雲端列印),列印任何類型的內容。透過支援列印功能的應用程式,使用者可以探索可用的印表機、變更紙張大小、選擇列印特定頁面,以及列印絕大多數類型的文件、圖片或檔案。

Android 4.4 引進原生的列印平台支援,以及用於管理列印和新增各種印表機支援類型的 API。這個平台提供了列印管理員,能夠協調要求列印的應用程式,以及處理列印要求的已安裝列印服務。列印管理員提供共用服務和系統 UI,方便使用者透過任何應用程式進行列印。此外,列印管理員也會確保內容在各程序 (從應用程式到列印服務) 之間傳遞時的安全性。

行動裝置橫向顯示,顯示印表機支援功能

您可以為應用程式新增列印支援或開發列印服務,以支援特定類型的印表機。

印表機製造商可以使用新的 API 開發自己的列印服務;這些可插式元件可以新增廠商專屬邏輯和服務,以便與特定類型的印表機進行通訊。他們可以建構列印服務並透過 Google Play 發行,讓使用者可以輕鬆找到並安裝到自己的裝置上。如同其他應用程式,您隨時可以透過無線更新的方式更新列印服務。

只需稍微修改程式碼,用戶端應用程式就能使用新的 API 為應用程式加入列印功能。大多數情況下,您會將列印動作新增至動作列,以及用於選擇要列印項目的 UI。您也可以實作 API 來建立列印工作、透過列印管理員查詢狀態及取消工作。如此一來,您就能列印幾乎各種類型的內容,例如本機圖片和文件、網路資料,或算繪為畫布的檢視畫面。

為了盡可能提高相容性,Android 使用 PDF 做為列印的主要檔案格式。列印前,您的應用程式需要產生已正確分頁 PDF 版本的內容。為了方便起見,印刷 API 提供原生和 WebView 輔助類別,可讓您使用標準 Android 繪圖 API 建立 PDF。如果應用程式知道如何繪製內容,就能快速建立 PDF 以供列印。

大多數搭載 Android 4.4 的裝置都會預先安裝 Google 雲端列印做為列印服務,以及多個支援列印功能的 Google 應用程式,包括 Chrome、雲端硬碟、資源庫和 QuickOffice。

儲存空間存取架構

全新的儲存空間存取架構可讓使用者透過偏好的文件儲存空間供應商,輕鬆瀏覽及開啟文件、圖片和其他檔案。標準且易於使用的 UI 可讓使用者在各個應用程式和供應商中,以一致的方式瀏覽檔案及存取近期檔案。

行動裝置顯示新版儲存空間存取架構中的開放式側欄 行動裝置展示全新儲存空間存取架構中的整合式 Box 服務

Box 和其他廠商已將其服務整合至儲存空間存取架構,讓使用者透過整個系統中的應用程式輕鬆存取自己的文件。

雲端或本機儲存空間服務可導入新的文件供應商類別來封裝其服務,藉此參與這個生態系統。提供者類別包含向系統註冊供應器所需的所有 API,以及在供應器中管理瀏覽、讀取及寫入文件。文件供應器可讓使用者存取任何能以檔案表示的遠端或本機資料,無論是文字、相片、桌布,還是影片、音訊等都沒問題。

如果您建立了雲端或本機服務的「文件供應器」,可以在現有 Android 應用程式中提供給使用者。下載及安裝應用程式後,使用者即可從參與架構的任何應用程式立即存取您的服務。由於使用者會更容易找到您的服務,這麼做可以提高曝光率和使用者參與度。

如果您開發用來管理檔案或文件的用戶端應用程式,只要利用新的 CREATE_DOCUMENTOPEN_DOCUMENT 意圖來開啟或建立檔案,系統就會自動顯示標準 UI 來瀏覽文件或文件,包括所有可用的文件供應器。

您一次只能整合所有供應商的用戶端應用程式,而且無須編寫任何廠商專屬程式碼。使用者新增或移除供應商後,仍可透過您的應用程式存取偏好的服務,完全不需要修改或更新程式碼。

儲存空間存取架構整合了現有的 GET_CONTENT 意圖,因此使用者也能從新的系統 UI 存取所有先前內容和資料來源。應用程式可以繼續使用 GET_CONTENT 讓使用者匯入資料。儲存空間存取架構和用於瀏覽的系統 UI 可讓使用者從更多來源更輕鬆地尋找及匯入資料。

大多數搭載 Android 4.4 的裝置都會預先整合為文件供應商的 Google 雲端硬碟和本機儲存空間,而與檔案搭配使用的 Google 應用程式也會採用新的架構。

低功耗感應器

批次處理感應器

Android 4.4 導入平台支援硬體感應器批次處理功能,這項全新的最佳化功能可以大幅降低持續感應器活動時的耗電量。

透過批次處理,Android 會與裝置硬體搭配運作,以有效率的方式分批收集及傳送感應器事件,而不是在偵測到感應器時個別收集事件。這樣一來,裝置的應用程式處理器就能在批次傳送前保持低耗電的閒置狀態。您可以使用標準事件監聽器,從任何感應器要求批次處理事件,並控制接收批次的間隔時間。您也可以要求在批次週期之間立即傳送事件。

感應器批次處理非常適合低功耗、長時間執行的用途,例如健身、位置追蹤、監控等。這項功能可增加應用程式效率,並持續追蹤感應器事件,即使螢幕關閉且系統處於休眠狀態也一樣。

感應器批次處理功能目前適用於 Nexus 5,我們正與晶片組合作夥伴共同合作,盡快在更多裝置上推出這項功能。

行動版顯示新步數偵測器支援的行動裝置 展示新步數計數器支援的行動裝置

MovesRuntastic Pedometer 正在使用硬體步數偵測器,提供長時間執行低耗電的服務。

計步偵測器和計步器

Android 4.4 還為兩個全新的複合感應器 (步驟偵測器和計步計數器) 新增平台支援,讓應用程式可在使用者步行、跑步或爬樓梯時追蹤步數。這些全新的感應器 內建於硬體,低耗電量。

步驟偵測工具會分析加速計輸入內容,判斷使用者何時採取了步數,然後為每個步驟觸發事件。步驟計數器會追蹤上次重新啟動裝置後的總步數,並在步數計數有變化時觸發事件。由於平台和基礎硬體均內建邏輯和感應器管理機制,因此您不需要在應用程式中維護自己的偵測演算法。

計步偵測工具和計數器感應器是 Nexus 5 提供,我們正與晶片組合作夥伴共同合作,希望盡快推出新裝置。

簡訊服務供應商

如果您開發的訊息應用程式採用簡訊或多媒體訊息服務,現在可以使用共用簡訊供應商和新的 API 來管理應用程式的訊息儲存與擷取作業。新的簡訊供應商和 API 會針對處理簡訊或多媒體訊息的所有應用程式定義標準化互動模型。

除了新的供應商和 API,Android 4.4 也推出了新的語意,用於接收訊息和寫入供應器。收到訊息後,系統會使用新的 SMS_DELIVER 意圖,將訊息直接轉送至使用者的預設訊息應用程式。其他應用程式仍可使用 SMS_RECEIVED 意圖監聽傳入的訊息。此外,系統現在只允許預設應用程式將訊息資料寫入供應器,但其他應用程式隨時可以讀取。非使用者預設的應用程式仍可傳送訊息,系統會代表應用程式將訊息寫入供應器,因此使用者可在預設應用程式中看到這些訊息。

如果安裝多個訊息應用程式,新的供應商和語意有助於改善使用者體驗,也能協助您使用完全支援且前瞻相容性的 API 來建構新的訊息功能。

建構精美應用程式的全新方式

行動裝置顯示全新的沉浸模式功能

新的沉浸模式可讓應用程式使用螢幕上的每個像素顯示內容及擷取觸控事件。

全螢幕沉浸模式

現在,您的應用程式可以使用裝置螢幕上的每個像素來展示內容並擷取觸控事件。Android 4.4 新增全螢幕沉浸模式,可讓您在手機和平板電腦上建立跨越邊緣的全螢幕使用者介面,隱藏所有系統 UI (例如狀態列和導覽列)。這個程式庫適合用於呈現豐富的視覺內容,例如相片、影片、地圖、書籍和遊戲。

在新的模式中,即使使用者與應用程式或遊戲互動,系統 UI 仍會保持隱藏狀態,您可以從螢幕上的任何位置擷取觸控事件,甚至可以擷取系統列遮住的區域。這樣就能在應用程式或遊戲中打造更大、更豐富、更沉浸式的 UI,減少視覺幹擾。

為確保使用者隨時能輕鬆透過全螢幕沉浸模式存取系統 UI,Android 4.4 支援新的手勢。在沉浸模式下,從螢幕頂端或底部邊緣滑動,現在會顯示系統 UI。

如要返回沉浸模式,使用者可以觸碰螢幕超出長條邊界外,或是等待一小段時間自動隱藏長條。為了提供一致的使用者體驗,新手勢也適用於先前隱藏狀態列的方法。

動畫場景的轉場架構

大多數應用程式都會根據數個主要 UI 狀態來建構資料流,這些 UI 狀態可以顯示不同動作。許多應用程式也會使用動畫來協助使用者瞭解自己的進度,以及各個狀態的可用動作。為方便您在應用程式中建立高品質動畫Android 4.4 推出了新的轉換架構。

轉場架構可讓您定義「場景」,通常是檢視區塊階層和轉場效果,說明如何在使用者進入或離開場景時,建立動畫或轉換場景。您可以使用多種預先定義的轉換類型,根據特定屬性 (例如版面配置邊界或瀏覽權限) 建立場景動畫。也有自動轉換類型,可在場景變更期間自動淡出、移動及調整檢視畫面大小。此外,您可以定義自訂轉場效果,為應用程式最重要的屬性建立動畫效果,也可以視需要插入自己的動畫樣式。

透過轉換架構,您也可以即時為 UI 的變更加上動畫效果,無須定義場景。例如,您可以對檢視區塊階層做出一系列變更,然後讓 TransitionManager 自動針對這些變更執行延遲轉換。

設定轉場效果後,即可輕鬆地從應用程式叫用這些轉場效果。舉例來說,您可以呼叫單一方法開始轉換,在檢視區塊階層中做出各種變更,然後在下一個影格動畫中,自動開始以動畫效果呈現您指定的變更。

半透明系統 UI

應用程式可以使用新的視窗樣式要求半透明系統資訊列。

如要自訂在應用程式流程中特定場景之間執行的轉場效果,您可以使用 TransitionManager。TransitionManager 可讓您定義場景與在特定場景變更中所執行轉場之間的關係。

半透明系統 UI 樣式

為了發揮內容的最大效用,您現在可以使用新的視窗樣式和主題要求半透明系統 UI,包括狀態列和導覽列。為確保導覽列按鈕或狀態列資訊清晰易讀,系統列後方會顯示細微的漸層。常見的用途是需要顯示在桌布上的應用程式。

進階通知存取權

通知監聽器服務現在可以查看使用通知建構工具 API 建構的關於傳入通知的更多資訊。事件監聽器服務可以存取通知的動作和新的額外欄位 (文字、圖示、圖片、進度、計時器等),以擷取更明確的通知資訊,並以不同的方式呈現資訊。

Chromium WebView 標誌

Chromium WebView

Android 4.4 採用以 Chromium 為基礎的全新 WebView 實作。新版 Chromium WebView 提供最新的標準支援、效能和相容性,可建構及顯示網路內容。

Chromium WebView 支援多種 HTML5、CSS3 和 JavaScript。且支援 Android 30 版 Chrome 中的大多數 HTML5 功能。還推出新版 JavaScript Engine (V8) 版本,大幅改善 JavaScript 效能。

此外,新版 Chromium WebView 支援使用 Chrome 開發人員工具進行遠端偵錯。舉例來說,您可以在開發機器上使用 Chrome 開發人員工具檢查、偵錯及分析行動裝置上的 WebView 內容。

新版 Chromium WebView 適用於所有搭載 Android 4.4 以上版本的相容裝置。您可以立即使用新的 WebView,只需稍微修改現有的應用程式和內容,在大多數情況下,內容都會順暢地遷移至新的實作方式。

全新媒體功能

錄製螢幕畫面

您現在可以透過 Android 裝置,輕鬆為應用程式製作高畫質影片。Android 4.4 開始支援螢幕錄製功能,並提供螢幕錄影公用程式,讓您可以從透過 USB 連接至 Android SDK 環境的裝置開始及停止錄影。這是為應用程式建立逐步操作說明和教學課程、測試素材、行銷影片和其他內容的絕佳方式。

螢幕錄影公用程式可擷取裝置螢幕畫面內容的影片,並將影片儲存為 MP4 檔案在裝置上。你可以視需要以任何裝置支援的解析度和位元率錄製影片,且輸出內容會保留螢幕的長寬比。根據預設,公用程式會選取與裝置在目前螢幕方向相等或接近裝置的螢幕解析度的解析度。錄影完成後,您可以直接透過裝置分享影片,或是將 MP4 檔案提取至主機電腦,進行後製作業。

如果您的應用程式會播放影片或其他受保護內容,而您不想讓螢幕錄影器擷取這些內容,可以使用 SurfaceView.setSecure() 將內容標示為安全。

您可以使用 Android SDK 中的 ADB 工具,使用 ADB shell 螢幕錄影指令來存取螢幕錄影內容。您也可以透過 Android Studio 中的 logcat 啟動這項功能。

透過自動調整播放功能切換解析度

Android 4.4 在 Android 媒體架構中為自動調整播放功能提供正式支援。自動調整播放功能是 MPEG-DASH 和其他格式的影片解碼器選用功能,可以在播放期間流暢地變更解析度。用戶端可以開始向解碼器輸入新的解析度的視訊畫面影格,並自動變更輸出緩衝區的解析度,不會出現大幅差距。

Android 4.4 的解析度切換功能可讓媒體應用程式提供更優異的串流影片體驗。應用程式可以使用現有 API,在執行階段檢查是否支援自動調整播放功能,並使用 Android 4.4 中推出的新 API 實作解析度切換功能。

DASH 的常見加密方式

Android 現在支援 MPEG-DASH 的通用加密 (CENC),可提供用於管理內容的標準多平台 DRM 配置。應用程式可透過 Android 模組化 DRM 架構和平台 API,利用 CENC 來支援 DASH。

HTTP 即時串流

Android 4.4 將平台的 HTTP 即時串流 (HLS) 支援更新為 7 版 HLS 規格 (通訊協定第 4 版) 的超集。詳情請參閱 IETF 草稿

傳送至 DSP 的音訊微調

Android 4.4 透過裝置晶片組中的數位訊號處理器 (DSP),新增對音訊通道 (DSP) 的支援,提供高效能、低功率的音訊播放。透過通道,音訊解碼和輸出效果會卸載至 DSP,降低應用程式處理器喚醒頻率並減少耗電量。

針對各種用途 (例如在螢幕關閉的情況下使用耳機聆聽音樂),使用音訊通道功能可以大幅改善電池續航力。舉例來說,使用音訊隧道功能,Nexus 5 可提供總離線音訊播放時間最長可達 60 小時,比非通道音訊需要 50% 以上。

媒體應用程式可利用音訊通道,在支援的裝置上運作,無需修改程式碼。只要裝置有可用的音訊,系統就會套用通道,將音訊播放效果最佳化。

顯示音量強化器音訊效果的視覺化工具

透過視覺化圖表,瞭解為何音量增強器能夠讓語音內容變得更加有聲。

裝置硬體必須支援音訊通道功能。目前只有 Nexus 5 支援音訊通道,我們正與晶片組合作夥伴合作,以便盡快讓更多裝置支援這項功能。

音訊監控

應用程式可以使用 Visualizer 效果中的新監控工具,取得裝置上目前正在播放音訊的最高強度與 RMS 等級更新。舉例來說,您可以在音樂視覺化影片中發揮創意,或在媒體播放器中導入播放計量功能。

增強音量

媒體播放應用程式可以使用新的 LoudnessBoostr 效果,提高口說內容的音量,這種壓縮器具有時間常數專門用於語音微調的時間常數,因此可放大。

改善影音同步效能的音訊時間戳記

音訊架構現在可以將音訊輸出 HAL 的呈現時間戳記回報給應用程式,以便改善影音同步效能。音訊時間戳記可讓應用程式判斷特定音訊影格何時向使用者顯示 (或何時出現在裝置外部)。您可以利用時間戳記資訊,更準確地同步處理音訊與視訊畫面。

Wi-Fi CERTIFIED MiracastTM

Android 4.4 裝置現在可以取得與 Miracast 相容的 Wi-Fi Alliance Wi-Fi 顯示規格認證。為協助測試,新的無線螢幕開發人員選項提供了無線螢幕認證的進階設定控制項與設定。您可以依序點選「Settings」>「Developer options」>「Wireless display certification」來使用這個選項。Nexus 5 是通過 Miracast 認證的無線顯示裝置。

RenderScript 運算

算繪最佳化圖表

Android 4.4 相對於 Android 4.3 的效能基準,是在相同的裝置 (Nexus 7、Nexus 10) 上執行。

效能持續提升

應用程式使用 RenderScript 時,不必重新編譯,即可在 RenderScript 執行階段中持續調整效能。右側圖表顯示在兩個熱門晶片組上,Android 4.4 的效能提升。

GPU 加速

凡是在支援的裝置上使用 RenderScript 的應用程式,都能使用 GPU 加速功能,不必變更程式碼或重新編譯。自 Nexus 10 首次推出 RenderScript GPU 加速功能,目前已開始支援其他硬體合作夥伴。

GPU 加速功能現已搭載 Android 4.4 版,同時支援 Nexus 5、Nexus 4、Nexus 7 (2013) 和 Nexus 10。我們正與合作夥伴共同合作,希望能盡快支援更多裝置。

Android NDK 中的 RenderScript

現在您可以直接透過原生程式碼運用 RenderScript。Android Native Development Kit (NDK) 中的全新 C++ API 可讓您存取透過架構 API 所提供的相同 RenderScript 功能,包括指令碼內建函式、自訂核心等。

如果您有需要用原生程式碼處理的大型效能工作,可以使用 RenderScript 執行這些工作,並與原生程式碼整合。RenderScript 自動支援多核心 CPU、GPU 和其他處理器,可在各種裝置上提供絕佳效能。

透過 NDK 建構使用 RenderScript 的應用程式時,您可以將該應用程式發布至任何搭載 Android 2.2 以上版本的裝置,就像架構 API 可用的 RenderScript 支援資料庫一樣。

顯示卡

GLES2.0 SurfaceFlinger

Android 4.4 將 SurfaceFlinger 從 OpenGL ES 1.0 升級至 OpenGL ES 2.0。

虛擬螢幕新增 Hardware Composer 支援功能

最新版的 Android Hardware Composer 支援 HWComposer 1.3,除了主要的外接螢幕 (例如 HDMI) 螢幕外,還可以支援一個虛擬螢幕的硬體組合,並改善 OpenGL ES 的互通性。

新型連線方式

新藍牙設定檔

Android 4.4 支援兩種新的藍牙設定檔,可讓應用程式支援更多低功耗和媒體互動。透過 GATT 加密的藍牙 HID (HOGP) 可讓應用程式與滑鼠、搖桿和鍵盤等低功率週邊裝置建立低延遲連結。藍牙 MAP 可讓應用程式與附近的裝置交換訊息 (例如免持使用的車用終端機或其他行動裝置)。使用者現在可以透過藍牙 AVRCP 1.3 的擴充功能,透過藍牙裝置設定系統的絕對音量。

HOGP、MAP 和 AVRCP 的平台支援奠基於 Google 與 Broadcom 在 Android 4.2 中推出的 Bluedroid 藍牙堆疊。支援服務會立即由 Nexus 裝置和其他提供相容藍牙功能的 Android 相容裝置開放。

紅外線延伸器

Android 4.4 開始支援內建紅外線擴散器的平台支援,並且推出新的 API 和系統服務,讓您能夠建構應用程式來充分利用這些功能。

您可以使用新 API 建構應用程式,讓使用者從遠端控製附近的電視、調諧器、開關和其他電子裝置。這個 API 可讓應用程式檢查手機或平板電腦是否有紅外線發射器、查詢電信業者頻率,然後傳送紅外線信號。

這個 API 對搭載 Android 4.4 以上版本的 Android 裝置而言為標準,因此應用程式無須編寫自訂整合程式碼,就能支援各式各樣的廠商。

Wi-Fi TDLS 支援

Android 4.4 支援 Wi-Fi 通道直接連結設定 (TDLS),藉此在已連上相同 Wi-Fi 網路的裝置之間快速串流媒體和其他資料。

無障礙功能

系統通用的隱藏式輔助字幕設定

Android 4.4 現在新增隱藏式輔助字幕的系統通用偏好設定,可改善各個應用程式的無障礙體驗。使用者可以依序前往「設定」 >「無障礙設定」 >「字幕」設定通用的字幕偏好設定,例如是否顯示字幕,以及要使用的語言、文字大小和文字樣式。

使用影片的應用程式現在可以存取使用者的字幕設定,並根據使用者的偏好設定調整呈現方式。而新的字幕管理工具 API 可讓您查看及監控使用者的字幕偏好設定。字幕管理工具可提供使用者偏好的字幕狀態,以及偏好的語言代碼、縮放比例係數和文字樣式。文字樣式包含前景和背景顏色、邊緣屬性和字體。

在系統通用字幕偏好設定內,以橫向模式顯示字幕

應用程式現在可以參照使用者的全系統字幕偏好設定。預期的顯示樣式範例會顯示在設定中。

此外,使用 VideoView 的應用程式可以透過新的 API 傳遞字幕串流與影片串流進行轉譯。系統會根據使用者的系統設定,自動處理影片畫面的字幕顯示。VideoView 目前僅支援自動顯示 WebVTT 格式的字幕。

所有顯示字幕的應用程式都應檢查使用者的系統全系統字幕偏好設定,並盡可能根據這些偏好設定轉譯字幕。如要進一步瞭解特定設定組合的樣式,您可以在「設定」應用程式中預覽不同語言、大小和樣式的字幕。

Enhanced Accessibility API

Android 4.4 擴充了無障礙 API,以支援更精準的結構和語意說明,以及觀察螢幕元素。透過新的 API,開發人員可為無障礙服務提供更多畫面元素相關資訊,進而提升無障礙意見回饋的品質。

在無障礙節點中,開發人員現在可以判斷節點是否為彈出式視窗、取得其輸入類型等等。您也可以透過新的 API 處理含有格線類資訊的節點,例如清單和資料表。舉例來說,您現在可以指定新的支援的動作、收集資訊、即時區域模式等。

透過新的無障礙功能事件,開發人員能夠更密切地掌握視窗內容的變更,也能監聽裝置上的觸控探索模式變更。

為國際使用者提供支援

RTL 語言代碼的可繪項目鏡像

如果您的應用程式是以採用 RTL 書寫系統的使用者為目標,您可以使用新的 API,宣告可繪項目應自動鏡像,前提是使用者的語言代碼設定包含 RTL 語言。

透過自動鏡像方式宣告可繪項目,有助於避免應用程式中的資產重複,並縮減 APK 的大小。如果您有可重複使用 LTR 和 RTL 呈現的可繪項目,您可以將預設版本宣告為自動鏡像,然後從 RTL 資源中省略這些可繪項目。

「Force RTL layout」選項可讓您更輕鬆地測試應用程式的本地化內容。

您可以在應用程式程式碼中,將各種類型的可繪項目宣告為自動鏡像,例如點陣圖、nine-patch、圖層、狀態清單和其他可繪項目。您也可以使用新屬性,在資源檔案中宣告可繪項目為自動鏡像。

強制使用由右至左版面配置

為了在不切換至 RTL 語言的情況下,更輕鬆地測試及偵錯版面配置鏡像問題,Android 提供了新的開發人員選項,可在所有應用程式中強制執行 RTL 版面配置方向。

「強制從右至左」版面配置選項會將裝置切換為所有語言代碼的 RTL 版面配置,並以目前語言顯示文字。這有助於找出應用程式的版面配置問題,而不必以 RTL 語言顯示應用程式。您可以依序前往「設定」>「開發人員選項」>「強制使用從右至左版面配置方向」,即可存取這個選項。

安全性增強項目

SELinux (強制執行模式)

Android 4.4 會將 SELinux 設定從「permissive」更新為「enforcing」。也就是說,系統會封鎖設有強制執行政策的 SELinux 網域中可能違反政策的情形。

改良的加密編譯演算法

Android 額外支援兩種加密編譯演算法,進一步提升安全性。我們在金鑰庫供應商中新增對橢圓曲線數位簽章演算法 (ECDSA) 的支援功能,可改善數位簽署的安全性,適用於簽署應用程式或數據連線等情境。實作加密金鑰衍生函式,保護用於完整磁碟加密的加密編譯金鑰。

其他強化項目

目前已在多使用者裝置上,系統會依每位使用者套用 VPN。這可讓使用者透過 VPN 轉送所有網路流量,而不影響裝置上的其他使用者。此外,Android 現在支援 FORTIFY_SOURCE 級別 2,所有程式碼都會以這些保護機制編譯而成。FORTIFY_SOURCE 已經過強化,可與 clang 搭配使用。

記憶體用量分析工具

Procstats

名為 procstats 的新工具可協助您分析應用程式使用的記憶體資源,以及在系統中執行的其他應用程式和服務使用的資源。

Procstats 會追蹤應用程式長期下來的執行方式,並提供有關其執行持續時間和記憶體用量的資料,協助判斷應用程式的執行效率。對於在背景啟動服務的應用程式而言,這一點至關重要,因為可讓您監控應用程式在執行期間的執行時間和所耗用的 RAM。Procstats 也會收集前景應用程式長期使用記憶體的相關資料,藉此確定應用程式的整體記憶體設定檔。

Procstats 可協助您識別應用程式啟動的背景服務,您可以追蹤這些服務持續運作的時間,以及服務在執行期間耗用多少 RAM。Procstats 還可讓您在前景執行應用程式分析,藉此根據應用程式的記憶體用量,判斷應用程式的整體記憶體設定檔。

新的 procstats 工具可讓您檢查應用程式和服務在不同時間的記憶體用量。

強化的 meminfo 工具可讓您查看應用程式的記憶體用量詳細資料。

您可以透過 Android SDK 中的 ADB 工具 adb shell dumpsys procstats 存取 procstats。此外,如要進行裝置端剖析,請參閱下方的「Process Stats 開發人員」選項。

裝置端記憶體狀態和剖析

Android 4.4 提供全新的開發人員選項,可協助您輕鬆分析應用程式在任何裝置或模擬器上執行的記憶體設定檔。如要瞭解應用程式使用記憶體的方式,以及在 RAM 較少的裝置上執行效能,這項功能尤其實用。您可以依序點選「設定」>「開發人員選項」>「程序統計資料」,即可找到這個選項

行動裝置顯示新程序統計資料選項 行動版展示功能使用詳細資訊,並且顯示在新的 [Process Stats] (程序統計資料) 選項中

程序統計資料可方便您查看應用程式的記憶體用量。您可以比較您的應用程式與其他應用程式的比較結果,並放大應用程式或背景服務的特定資料。

「Process Stats」選項會根據使用新 procstats 服務收集到的資料,顯示應用程式記憶體用量的各種高階指標。您可以在主畫面中查看系統記憶體狀態摘要。綠色表示 RAM 使用率低的相對時間,黃色表示 RAM 用量適中,紅色表示高 (重大) RAM 用量

摘要下方會列出每個應用程式的系統記憶體負載摘要。每個應用程式的藍色長條代表程序的相對運算記憶體負載 (執行階段 x avg_pss),百分比數字則代表背景作業花費的相對時間。您可以篩選清單,只顯示前景、背景或快取程序,也可以納入或排除系統程序。您也可以將收集的資料變更為 3、6、12 或 24 小時,並納入或排除我們的記憶體。

如要單獨查看特定應用程式的記憶體用量,請輕觸該應用程式。您現在可以查看各個應用程式的記憶體消耗量摘要,以及應用程式正在執行的收集間隔百分比。此外,您也可以查看收集期間、應用程式服務下方的平均用量和上限,以及應用程式的執行時間百分比。

使用 Process Stats 中的資料分析應用程式,可以找出問題,並為應用程式建議可能的最佳化做法。舉例來說,如果應用程式執行時間超過預期,或在特定期間內使用過多記憶體,程式碼可能會出現錯誤,您可以解決這些錯誤來改善應用程式效能,尤其是在 RAM 較低的裝置上執行時。