歡迎使用 Android 4.4 KitKat!
Android KitKat 為所有平台的更多裝置帶來 Android 所有最創新、最精美、最實用的功能。
本文件可讓您一覽為開發人員提供的新功能。
如要進一步瞭解消費者專用的 KitKat,請前往 www.android.com。
Android 4.4 經過特別設計,能在更多種裝置上運作快速、順暢又回應,包括全世界數百萬個配備 512 MB RAM 的入門級裝置。
KitKat 能夠簡化每個主要元件,藉此減少記憶體用量,並導入新 API 和工具,協助您建立創新、回應及節省記憶體的創新應用程式。
建構新一代 Android 裝置的原始設備製造商 (OEM) 可運用目標明確的建議和選項,即使裝置記憶體不足,也能有效執行 Android 4.4。Dalvik JIT 程式碼快取調整、核心相同頁面合併 (KSM)、切換至 zRAM,以及其他最佳化功能可協助管理記憶體。新的設定選項可讓原始設備製造商 (OEM) 調整程序的記憶體不足層級、設定圖形快取大小、控制記憶體收回等。
在 Android 中,整個系統的變更可改善記憶體管理,並減少記憶體用量。然後改善核心系統程序以減少堆積,現在還能更積極保護系統記憶體,避免使用大量 RAM 的應用程式。當多項服務一次啟動時 (例如網路連線變更時),Android 現在會以小型群組依序啟動服務,以避免記憶體用量高峰。
對開發人員來說,Android 4.4 可協助您在所有裝置上提供高效率且回應的應用程式。全新的 ActivityManager.is LowRamDevice() API 可讓您根據裝置的記憶體設定調整應用程式行為。視您想在入門層級裝置上支援的用途而定,您可以視需要修改或停用大型記憶體功能。如要進一步瞭解如何針對低記憶體裝置最佳化應用程式,請按這裡。
這些新工具也能提供強大的應用程式記憶體效能深入分析。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。
儲存空間存取架構
全新的儲存空間存取架構可讓使用者輕鬆瀏覽及開啟所有偏好文件儲存空間供應商中的文件、圖片及其他檔案。透過簡單易用的標準使用者介面,使用者能夠在不同應用程式和供應商之間,以一致的方式瀏覽檔案及存取近期檔案。
雲端或本機儲存空間服務可以導入新的文件供應器類別來封裝服務,藉此加入這個生態系統。提供者類別包含向系統註冊提供者所需的所有 API,以及管理在供應器中的瀏覽、讀取及寫入文件。文件提供者可以讓使用者存取任何以檔案表示的遠端或本機資料,例如文字、相片、桌布、影片和音訊等。
如果您為雲端或本機服務建構文件供應器,就可以在現有的 Android 應用程式中將其提供給使用者。下載及安裝應用程式後,使用者就能透過任何參與架構的應用程式立即存取您的服務。這有助於提高曝光率和使用者參與度,因為使用者能輕鬆找到您的服務。
如果您開發的用戶端應用程式會管理檔案或文件,只要使用新的 CREATE_DOCUMENT 或 OPEN_DOCUMENT 意圖開啟或建立檔案,就能與儲存空間存取架構整合,系統會自動為瀏覽文件顯示標準使用者介面,包括所有可用的文件提供者。
您可以一次整合所有供應商的用戶端應用程式,不必使用任何供應商專屬程式碼。既然使用者新增或移除供應商,他們仍可繼續透過您的應用程式存取自己偏好的服務,無需對程式碼進行任何變更或更新。
儲存空間存取架構已與現有的 GET_CONTENT 意圖整合,因此使用者也能透過新的系統 UI 存取所有先前的內容和資料來源,以便進行瀏覽。應用程式可以繼續使用 GET_CONTENT 做為讓使用者匯入資料的方式。儲存空間存取架構和瀏覽功能的系統 UI 可讓使用者更輕鬆地從更多來源搜尋及匯入資料。
大多數搭載 Android 4.4 的裝置都包含已預先整合為文件供應商的 Google 雲端硬碟和本機儲存空間,處理檔案的 Google 應用程式也採用新的架構。
低功耗感應器
感應器批次處理
Android 4.4 導入了硬體感應器批次處理的平台支援,這項新的最佳化功能可大幅降低進行中的感應器活動耗電量。
透過感應器批次處理,Android 會搭配使用裝置硬體,以批次方式收集及傳送感應器事件,而非在偵測到事件時個別提供事件。這麼做可讓裝置的應用程式處理器在傳送批次傳送之前,維持在低耗電狀態。您可以使用標準事件監聽器,從任何感應器要求批次處理事件,也可以控制接收批次的間隔時間。您也可以要求在批次週期之間立即傳送事件。
感應器批次處理非常適合用於低耗電且長時間執行的用途,例如健身、位置追蹤、監控等。這個 API 可提升應用程式的效率,還能持續追蹤感應器事件,即使螢幕關閉且系統處於休眠狀態也沒問題。
目前 Nexus 5 支援感應器批次處理功能,我們正努力與晶片組合作夥伴合作,希望能盡快在更多裝置上提供這項功能。
計步偵測器和計步器
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 自動針對這些變更執行延遲轉換。
設定轉場效果後,您可以直接從應用程式叫用轉場效果。舉例來說,您可以呼叫單一方法開始轉場效果,在檢視區塊階層中進行各種變更,然後在下一個影格動畫開始,您指定的變更以動畫呈現。
如要自訂控管在應用程式流程中特定場景之間的轉場效果,可以使用 TransitionManager。TransitionManager 可讓您定義場景與針對特定場景變更執行的轉場效果之間的關係。
半透明系統 UI 樣式
為了讓內容發揮最大效益,您現在可以使用新視窗樣式和主題來要求半透明系統 UI,包括狀態列和導覽列。為確保導覽列按鈕或狀態列資訊的易讀性,細微漸層會顯示在系統列後方。典型的用途就是需要透過桌布呈現的應用程式。
進階通知存取權
通知事件監聽器服務現在可以進一步瞭解使用通知建構工具 API 建構的傳入通知。事件監聽器服務可以存取通知動作和新的額外欄位 (文字、圖示、圖片、進度、計時器等),以擷取更簡潔的通知資訊,並以不同方式呈現資訊。
Chromium WebView
Android 4.4 包含以 Chromium 為基礎的 WebView 全新實作方式。新版 Chromium WebView 提供最新的標準支援功能、效能和相容性,可用於建構及顯示網路內容。
Chromium WebView 針對 HTML5、CSS3 和 JavaScript 提供廣泛的支援。且支援 Android 30 版 Google Chrome 提供的大部分 HTML5 功能。另外,它還包含新版 JavaScript Engine (V8) 的更新版本, JavaScript 效能大幅提升。
此外,新版 Chromium WebView 也支援使用 Chrome 開發人員工具進行遠端偵錯。舉例來說,您可以在開發機器上使用 Chrome 開發人員工具,檢查、偵錯及分析在行動裝置上的 WebView 內容上線情況。
所有搭載 Android 4.4 以上版本的相容裝置都會提供新版 Chromium WebView。您可以立即使用新版 WebView,也可以對現有應用程式和內容進行最低限度的修改。在大多數情況下,您的內容會流暢地遷移至新的實作項目。
全新媒體功能
錄製螢幕畫面
您現在可以直接在 Android 裝置上輕鬆為應用程式製作高畫質影片。Android 4.4 開始支援螢幕錄影功能,並提供螢幕錄影公用程式,可讓您在透過 USB 連接至 Android SDK 環境的裝置中開始和停止錄影。您可以透過這個全新方式,為應用程式、測試資料、行銷影片等內容建立逐步操作說明和教學課程。
使用螢幕錄影公用程式,即可擷取裝置螢幕內容的影片,並將影片儲存為裝置上的 MP4 檔案。您可以使用任何裝置支援的解析度和位元率錄製,輸出內容會保留螢幕的長寬比。根據預設,公用程式會選取與裝置螢幕目前解析度相等或接近的解析度。錄製完成後,您可以直接透過裝置分享影片,或是將 MP4 檔案提取至主機電腦以進行後製。
如果應用程式播放的影片或其他受保護內容,您不想讓螢幕錄影器擷取到這些內容,您可以使用 SurfaceView.setSecure() 將內容標示為安全。
您可以使用 Android SDK 隨附的 ADB 工具,使用 adb shell screenrecord 指令存取螢幕畫面錄製功能。您也可以透過 Android Studio 的 logcat 啟動這個 API。
透過自動調整播放功能切換解析度
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,降低喚醒應用程式處理器的頻率,以及降低耗電量。
音訊通道可大幅改善電池續航力,適用於各項用途 (例如在螢幕關閉的情況下透過耳機聆聽音樂)。以音訊通道為例,Nexus 5 提供的非網路音訊總播放時間最長可達 60 小時,與非隧道音訊相比,可增加超過 50% 的電池續航力。
媒體應用程式可以在支援的裝置上充分運用音訊通道,無需修改程式碼。系統會套用通道,盡可能在裝置有音訊播放時最佳化音訊播放。
裝置硬體必須支援音訊通道。目前 Nexus 5 支援音訊通道功能,我們正與晶片組合作夥伴合作,希望能盡快在更多裝置上提供音訊通道。
音訊監控
應用程式可以使用 Visualizer 效果中的新監控工具,取得裝置上目前正在播放音訊的峰值和 RMS 等級更新。舉例來說,您可以在音樂視覺化工具中發揮創意,或在媒體播放器中導入播放計量功能。
音量強化工具
媒體播放應用程式可以使用新的 LoudnessEnhancer 效果提高語音內容的音量,這種效果會做為壓縮工具,並搭配特別針對語音調整的時間常數。
改善 AV 同步處理功能的音訊時間戳記
音訊架構現在可以向應用程式回報音訊輸出 HAL 的呈現時間戳記,進而改善音訊與視訊的同步處理作業。音訊時間戳記可讓應用程式判斷在裝置外部向使用者顯示 (或顯示) 特定音訊影格的時間;您可以使用時間戳記資訊,更準確地同步處理音訊與視訊影格。
Wi-Fi CERTIFIED MiracastTM
Android 4.4 裝置現可通過 Wi-Fi Alliance Wi-Fi 顯示規格認證,符合 Miracast 相容性。為協助測試,新的無線螢幕顯示開發人員選項提供無線螢幕認證的進階設定控制項和設定。前往「設定」>「開發人員選項」>「無線螢幕認證」,即可找到這個選項。Nexus 5 是 Miracast 認證的無線顯示裝置。
RenderScript 運算
效能持續提升
應用程式使用 RenderScript 時,受益於 RenderScript 執行階段本身的持續調整效能,不必重新編譯。右圖顯示兩個熱門晶片組在 Android 4.4 中的效能提升情況。
GPU 加速
凡是在支援的裝置上使用 RenderScript 的應用程式,都能享有 GPU 加速優勢,而且不必變更程式碼或重新編譯。自 Nexus 10 首次推出 RenderScript GPU 加速功能以來,許多其他硬體合作夥伴現已提供支援。
現在搭載 Android 4.4 的 GPU 加速功能適用於 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 硬體 Composer 的 HWComposer 1.3 除了主要的外接螢幕 (例如 HDMI) 螢幕外,還支援一個虛擬螢幕的硬體組合,並改善 OpenGL ES 互通性。
全新的連線類型
新的藍牙設定檔
Android 4.4 支援兩個新的藍牙設定檔,讓應用程式支援更廣泛的低功耗和媒體互動。透過 GATT 進行的藍牙 HID (HOGP) (HOGP) 為應用程式提供低延遲連結,以及低功率週邊裝置 (例如滑鼠、搖桿和鍵盤) 的連結。藍牙 MAP 可讓應用程式與鄰近裝置交換訊息,例如可供免持操作的汽車感應式刷卡機或其他行動裝置。使用者現在可以做為藍牙 AVRCP 1.3 的擴充功能,透過藍牙裝置在系統上設定絕對音量。
平台支援 HOGP、MAP 和 AVRCP,都是以 Google 和 Broadcom 在 Android 4.2 中推出的 Bluedroid 藍牙堆疊為基礎。立即為 Nexus 裝置和其他提供相容藍牙功能的 Android 相容裝置提供支援服務。
紅外線雷射
Android 4.4 推出了對內建 IR 爆發器的平台支援,以及全新的 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 格式的字幕。
所有顯示字幕的應用程式都必須檢查使用者的系統通用字幕偏好設定,並盡可能根據這些偏好設定顯示字幕。如要深入瞭解特定設定組合的外觀,您可以直接在「設定」應用程式中預覽不同語言、大小和樣式的字幕。
強化的 Accessibility API
Android 4.4 擴充了無障礙 API,以支援更精準的結構和語意說明,以及螢幕元素的觀察項目。有了新的 API,開發人員可為無障礙服務提供更多畫面元素詳細資訊,藉此提升無障礙服務的品質。
在無障礙節點中,開發人員現在可以判斷節點是否為彈出式視窗、取得輸入類型等等。您也可以使用新的 API 來處理含有格狀清單資訊 (例如清單和表格) 的節點。舉例來說,您現在可以指定新的支援的動作、集合資訊、即時區域模式等。
新的無障礙功能事件可讓開發人員更密切關注視窗內容中的變更,還能監聽裝置上的觸控探索模式變更。
支援國際使用者
RTL 語言代碼的可繪項目鏡像
如果您的應用程式鎖定使用 RTL 指令碼的使用者,您可以使用新的 API,宣告使用者的語言代碼設定包含 RTL 語言時,應自動建立可繪項目。
將可繪項目宣告為自動鏡像,有助於避免在應用程式中發生資產重複的情形,並縮減 APK 的大小。如果您有可重複使用 LTR 和 RTL 簡報的可繪項目,您可以將預設版本宣告為自動鏡像,然後從 RTL 資源中刪除這些可繪項目。
您可以在應用程式程式碼中,將多種類型的可繪項目宣告為自動鏡像,例如點陣圖、nine-patch、圖層、狀態清單和其他可繪項目。您也可以使用新屬性,在資源檔案中將可繪項目宣告為自動建立鏡像。
強制使用由右至左版面配置
為方便您在不切換至 RTL 語言的情況下測試版面配置鏡像問題並進行偵錯,Android 提供新的開發人員選項,以強制所有應用程式強制執行 RTL 版面配置的方向。
點選「強制從右至左版面配置」選項,將所有語言代碼的裝置切換為從右至左的版面配置,並以目前語言顯示文字。這可協助您找出應用程式之間的版面配置問題,而不必以 RTL 語言顯示應用程式。如要存取這個選項,請依序前往「設定」>「開發人員選項」>「強制從右至左版面配置方向」。
安全性增強項目
SELinux (強制執行模式)
Android 4.4 將 SELinux 設定從「權限」更新為「強制執行」。也就是說,如果 SELinux 網域處於強制執行政策的 SELinux 網域內可能違反政策規定,就會遭到封鎖。
改善密碼編譯演算法
Android 進一步支援另外兩項加密編譯演算法,進一步提高安全性。我們已為 KeyStore 供應商新增橢圓曲線數位簽章演算法 (ECDSA) 支援功能,這麼做可以提高數位簽署的安全性,適用於簽署應用程式或數據連線等情境。系統已執行 Scrypt 金鑰衍生函式,以保護用於全磁碟加密的加密編譯金鑰。
其他強化項目
在多使用者裝置上,系統現在會為每位使用者套用 VPN。這可讓使用者透過 VPN 轉送所有網路流量,而不會影響裝置上的其他使用者。此外,Android 現在支援 FORTIFY_SOURCE 級別 2,所有程式碼都會以這些保護措施編譯。FORTIFY_SOURCE 已強化,可與 clang 搭配使用。
記憶體用量分析工具
狀態分析
名為 procstats 的新工具可協助您分析應用程式使用的記憶體資源,以及系統上執行的其他應用程式與服務所使用的資源。
Procstats 可追蹤應用程式在特定期間的運作情況,提供執行時間長度和記憶體用量的相關資料,協助判斷應用程式的效能。如果應用程式會啟動在背景執行的服務,這一點非常重要,因為這項功能可讓您監控應用程式在背景執行的時間,以及所使用的 RAM 用量。此外,Procstats 也會收集前景應用程式的記憶體用量資料變化情形,藉此判斷應用程式的整體記憶體設定檔。
Procstats 可協助您識別應用程式啟動的背景服務。您可以追蹤這些服務繼續執行的時間,以及執行過程中的 RAM 用量。Procstats 還能在應用程式執行時剖析應用程式,利用其記憶體長期變化,判斷應用程式的整體記憶體設定檔。
您可以透過 Android SDK 中的 ADB 工具 (adb shell dumpsys procstats) 存取 procstats。另外,如需在裝置端剖析,請參閱下方的「Process Stats」開發人員選項。
Android 4.4 包含新的開發人員選項,方便您在任何裝置或模擬器上執行應用程式時,分析應用程式的記憶體設定檔。如要掌握應用程式使用記憶體的狀況,以及在 RAM 較低的裝置上執行的運作情形,將特別實用。您可以在「設定」>「開發人員選項」>「處理統計資料」找到相關選項。
「Process Stats」選項會根據使用新 procstats 服務收集到的資料,顯示應用程式記憶體用量的各種高階指標。主畫面會顯示系統記憶體狀態摘要。綠色代表 RAM 使用率偏低的相對時間,黃色代表 RAM 用量中等,紅色代表 RAM 用量偏高 (重要)
摘要下方會列出每個應用程式的系統記憶體負載。每個應用程式的藍色長條都代表其程序的相對計算記憶體負載 (執行階段 x avg_pss),而百分比數字則代表背景所花費的相對時間。您可以篩選清單,只顯示前景、背景或快取程序,也可以納入或排除系統程序。您也可以將收集的資料長度變更為 3、6、12 或 24 小時,也可以納入或排除 us 記憶體。
如要單獨查看特定應用程式的記憶體用量,請輕觸該應用程式。現在,您可以查看各個應用程式所耗用記憶體的摘要,以及應用程式正在執行的集合間隔百分比。此外,您也可以查看資料收集期間的平均用量和最大值,顯示在應用程式的服務下方,以及應用程式的執行時間百分比。
使用處理統計資料中的資料分析應用程式,可以找出問題,並為應用程式提供可能的最佳化建議。舉例來說,如果應用程式執行的時間超過預期,或在特定時間內使用了過多記憶體,就可能會發生程式碼錯誤,進而改善應用程式效能,特別是在 RAM 較低的裝置上執行時。