歡迎使用 Android 4.4 KitKat!
Android KitKat 為所有平台的更多裝置帶來 Android 所有最創新、最精美、最實用的功能。
本文將簡要介紹開發人員的最新消息。
如要進一步瞭解 KitKat 的消費者功能,請前往 www.android.com。
讓所有人都能使用 Android
Android 4.4 可在比以往更廣泛的裝置上順暢運作,包括全球數百萬部入門級裝置,這些裝置的 RAM 容量最少為 512 MB。
KitKat 簡化了每個主要元件,以減少記憶體用量,並推出新的 API 和工具,協助您打造創新、回應迅速且記憶體效率高的應用程式。
原始設備製造商 (OEM) 在打造下一代 Android 裝置時,可以利用指定的最佳化建議和選項,即使在記憶體較低的裝置上,也能有效執行 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 14443-4 (ISO-DEP) 通訊協定傳輸的 ISO/IEC 7816 智慧卡。目前許多系統都會使用這類卡片,包括現有的 EMVCO NFC 支付基礎架構。Android 會使用 ISO/IEC 7816-4 中定義的應用程式 ID (AID),將交易導向至正確的 Android 應用程式。
應用程式會在資訊清單檔案中宣告支援的 AID,以及用於指出可用支援類型的類別 ID (例如「payments」)。如果有多個應用程式支援相同類別的相同 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 可讓使用者在各應用程式和供應商中,以一致的方式瀏覽檔案和存取近期檔案。
雲端或本機儲存服務可以實作新的文件提供者類別,藉此參與這個生態系統,並封裝其服務。提供者類別包含所有 API,可讓您向系統註冊提供者,並在提供者中管理瀏覽、讀取和寫入文件的作業。文件提供者可讓使用者存取任何可做為檔案呈現的遠端或本機資料,包括文字、相片、桌布、影片和音訊等。
如果您為雲端或本機服務建立文件提供者,可以將其納入現有的 Android 應用程式,並提供給使用者。使用者下載及安裝應用程式後,即可透過任何參與架構的應用程式,立即存取您的服務。這樣一來,使用者就能更輕鬆地找到您的服務,有助於提升曝光度和使用者參與度。
如果您開發的是用於管理檔案或文件的用戶端應用程式,只要使用新的 CREATE_DOCUMENT 或 OPEN_DOCUMENT 意圖開啟或建立檔案,即可整合儲存空間存取架構。系統會自動顯示瀏覽文件的標準 UI,包括所有可用的文件提供者。
您可以一次為所有供應商整合客戶端應用程式,而無須使用任何供應商專屬程式碼。使用者新增或移除供應商時,仍可透過應用程式存取偏好的服務,無須變更或更新程式碼。
儲存空間存取架構已與現有的 GET_CONTENT 意圖整合,因此使用者也可以透過新的系統 UI 瀏覽先前所有內容和資料來源。應用程式可以繼續使用 GET_CONTENT 權限,讓使用者匯入資料。存取權存放區架構和瀏覽系統 UI 可讓使用者更輕鬆地從更多來源尋找及匯入資料。
大多數搭載 Android 4.4 的裝置都會預先整合 Google 雲端硬碟和本機儲存空間做為文件供應器,而可用於檔案的 Google 應用程式也會使用新架構。
低功耗感應器
感應器批次處理
Android 4.4 推出了平台支援硬體感應器批次處理功能,這項全新的最佳化功能可大幅減少持續感應器活動的耗電量。
透過感應器批次處理功能,Android 會與裝置硬體合作,以批次方式收集及傳送感應器事件,而非在偵測到時個別處理。這可讓裝置的應用程式處理器維持在低耗電閒置狀態,直到批次傳送完畢為止。您可以使用標準事件監聽器,從任何感應器要求分批事件,並控制接收分批事件的間隔。您也可以要求在批次週期之間立即傳送事件。
感應器批次處理功能非常適合用於低耗電、長時間執行的用途,例如健身、位置追蹤、監控等。這項功能可讓應用程式更有效率,並讓您持續追蹤感應器事件,即使螢幕關閉且系統處於休眠狀態也沒問題。
感應器批次處理功能目前適用於 Nexus 5,我們正與晶片組合作夥伴合作,盡快將這項功能推廣至更多裝置。
步數偵測器和計步器
Android 4.4 也新增了兩種複合感應器的平台支援功能,分別是步數偵測器和步數計數器,可讓應用程式在使用者步行、跑步或爬樓梯時追蹤步數。這些新感應器已在硬體中實作,可降低耗電量。
步數偵測器會分析加速計輸入內容,以便辨識使用者何時踏出一步,然後在每次踏出一步時觸發事件。步數計數器會追蹤裝置上次重新啟動後的總步數,並在步數計數發生變更時觸發事件。由於邏輯和感應器管理功能已內建於平台和基礎硬體中,因此您不需要在應用程式中維護自己的偵測演算法。
步數偵測器和計數器感應器可在 Nexus 5 上使用,我們正與晶片組合作夥伴合作,盡快將這些感應器納入新裝置。
簡訊供應商
如果您開發的是使用簡訊或多媒體訊息的訊息應用程式,現在可以使用共用簡訊供應器和新的 API,管理應用程式的訊息儲存和擷取作業。新的 SMS 供應器和 API 會為所有處理 SMS 或 MMS 訊息的應用程式定義標準化互動模式。
除了新的供應器和 API,Android 4.4 還推出了新語義,可用於接收訊息和寫入供應器。收到訊息後,系統會使用新的 SMS_DELIVER 意圖,將訊息直接傳送至使用者的預設訊息應用程式。其他應用程式仍可使用 SMS_RECEIVED 意圖監聽傳入的訊息。此外,現在系統只允許預設應用程式將訊息資料寫入供應器,但其他應用程式隨時都可以讀取。非使用者預設應用程式仍可傳送訊息,系統會代表應用程式將這些訊息寫入供應器,讓使用者在預設應用程式中看到這些訊息。
新的提供者和語義可在使用者安裝多個訊息應用程式時改善使用者體驗,並協助您使用完全支援且向前相容的 API 建構新的訊息功能。
建構美觀應用程式的新方法
全螢幕沉浸式模式
如今,您的應用程式可以使用裝置螢幕上的每個像素來展示內容,並擷取觸控事件。Android 4.4 新增了全螢幕沉浸式模式,可讓您在手機和平板電腦上建立從邊到邊的完整 UI,隱藏所有系統 UI,例如狀態列和導覽列。這類內容包括相片、影片、地圖、書籍和遊戲等豐富的視覺內容。
在這個新模式中,即使使用者正在與應用程式或遊戲互動,系統 UI 仍會保持隱藏狀態。您可以從螢幕上的任何位置擷取觸控事件,甚至是系統列會佔用的位置。這麼做可讓您在應用程式或遊戲中建立更大、更豐富、更具沉浸感的 UI,同時減少視覺干擾。
為確保使用者在沉浸式全螢幕模式下,能一如往常輕鬆存取系統 UI,Android 4.4 支援新的手勢操作:在沉浸式模式下,從螢幕頂端或底部邊緣滑動,即可顯示系統 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。支援 Chrome 適用於 Android 30 的大部分 HTML5 功能。這項更新也帶來了新版 JavaScript 引擎 (V8),可大幅提升 JavaScript 效能。
此外,新的 Chromium WebView 支援使用 Chrome 開發人員工具進行遠端偵錯。舉例來說,您可以在開發機器上使用 Chrome 開發人員工具,即時檢查、偵錯及分析行動裝置上的 WebView 內容。
所有搭載 Android 4.4 以上版本的裝置都包含新的 Chromium WebView。您可以立即使用新版 WebView,並只需對現有應用程式和內容進行最少的修改。在大多數情況下,您的內容會無縫遷移至新導入作業。
新媒體功能
錄製螢幕畫面
您現在可以直接透過 Android 裝置,輕鬆製作應用程式的高品質影片。Android 4.4 新增螢幕錄影支援功能,並提供螢幕錄影公用程式,可讓您透過 USB 連線至 Android SDK 環境的裝置,開始及停止錄影。這項全新功能可讓您為應用程式、測試素材、行銷影片等建立操作說明和教學課程。
您可以使用螢幕錄影公用程式,擷取裝置螢幕畫面內容的影片,並將影片儲存為裝置上的 MP4 檔案。您可以使用任何裝置支援的解析度和位元率進行錄製,輸出內容會保留螢幕的顯示比例。根據預設,公用程式會選取與裝置在目前方向的顯示解析度相同或相近的解析度。錄製完成後,您可以直接從裝置分享影片,或將 MP4 檔案拉至主機電腦進行後製。
如果應用程式播放影片或其他受保護的內容,而您不希望螢幕錄影工具擷取這些內容,可以使用 SurfaceView.setSecure() 將內容標示為安全。
您可以使用 adb shell screenrecord 指令,透過 Android SDK 內含的 ADB 工具存取螢幕錄影功能。您也可以透過 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) 支援更新為 HLS 規格第 7 版 (通訊協定第 4 版) 的超集合。詳情請參閱 IETF 草案。
音訊轉送至 DSP
為提供高效能、低耗電量的音訊播放功能,Android 4.4 新增了平台支援功能,可將音訊透過隧道傳送至裝置晶片組中的數位訊號處理器 (DSP)。透過隧道連線,音訊解碼和輸出效果會卸載至 DSP,因此應用程式處理器喚醒的頻率會降低,電池用量也會減少。
在螢幕關閉的情況下,透過耳機聆聽音樂等用途,音訊隧道可大幅延長電池續航力。舉例來說,在使用音訊隧道後,Nexus 5 在離線狀態下可播放音訊的時間最多可達 60 小時,比未使用隧道時多了 50% 以上。
媒體應用程式可在支援的裝置上利用音訊隧道,無須修改程式碼。系統會在裝置上可用時,套用隧道功能來最佳化音訊播放。
音訊隧道需要裝置硬體支援。目前,音訊隧道功能可在 Nexus 5 上使用,我們正與晶片組合作夥伴合作,盡快將這項功能提供給更多裝置。
音訊監控
應用程式可以使用 Visualizer 效果中的新監控工具,取得裝置上任何目前播放音訊的峰值和 RMS 等級更新。舉例來說,您可以在音樂視覺化工具中運用這項功能,或是在媒體播放器中實作播放量計量。
音量增強
媒體播放應用程式可使用新的 LoudnessEnhancer 效果提高語音內容的音量,這項效果會以壓縮器的形式運作,並使用專為語音調整的時間常數。
音訊時間戳記,可改善影音同步
音訊架構現在可以從音訊輸出 HAL 回報呈現時間戳記給應用程式,以便改善音訊和影像的同步效果。音訊時間戳記可讓應用程式判斷何時將特定音訊影格呈現 (或已呈現) 給使用者;您可以使用時間戳記資訊,更精確地將音訊與影格同步。
Wi-Fi CERTIFIED Miracast™
Android 4.4 裝置現在可獲得 Wi-Fi Alliance Wi-Fi 顯示規格的認證,以便與 Miracast 相容。為協助測試,我們推出了新的無線螢幕開發人員選項,可提供無線螢幕認證的進階設定控制選項和設定。您可以依序前往「設定」>「開發人員選項」>「無線螢幕分享認證」,即可存取這個選項。Nexus 5 是經 Miracast 認證的無線螢幕裝置。
RenderScript Compute
持續改善效能
應用程式使用 RenderScript 時,會在 RenderScript 執行階段中持續進行效能調整,無需重新編譯。右側圖表顯示 Android 4.4 在兩種熱門晶片組的效能提升情形。
GPU 加速
在支援的裝置上,任何使用 RenderScript 的應用程式都能享有 GPU 加速功能,無須變更程式碼或重新編譯。自 Nexus 10 首次推出 RenderScript GPU 加速功能以來,許多其他硬體合作夥伴也已加入支援。
如今,Android 4.4 已支援 Nexus 5、Nexus 4、Nexus 7 (2013) 和 Nexus 10 的 GPU 加速功能,我們也正與合作夥伴合作,盡快將這項功能推廣至更多裝置。
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。
新的硬體 Composer 支援虛擬螢幕
最新版的 Android 硬體編譯器 (HWComposer 1.3) 除了支援主要外部 (例如 HDMI) 螢幕的硬體編譯,也支援單一虛擬螢幕的硬體編譯,並改善了 OpenGL ES 的互通性。
全新連線類型
新的藍牙設定檔
Android 4.4 支援兩種新的藍牙設定檔,讓應用程式支援更多低耗電量和媒體互動功能。Bluetooth HID over GATT (HOGP) 可讓應用程式與低功耗周邊裝置 (例如滑鼠、搖桿和鍵盤) 建立低延遲連線。藍牙 MAP 可讓應用程式與附近裝置交換訊息,例如免持使用的車用終端或其他行動裝置。做為 藍牙 AVRCP 1.3 的擴充功能,使用者現在可以透過藍牙裝置設定系統的絕對音量。
HOGP、MAP 和 AVRCP 的平台支援功能是建構在 Google 和 Broadcom 在 Android 4.2 中推出的 Bluedroid Bluetooth 堆疊上。支援功能已立即在 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 格式自動顯示字幕。
所有顯示字幕的應用程式都應確實檢查使用者的系統全域字幕偏好設定,並盡可能根據這些偏好設定顯示字幕。如要進一步瞭解特定設定組合的外觀,請直接在「設定」應用程式中預覽不同語言、大小和樣式的字幕。
強化 Accessibility API
Android 4.4 擴充無障礙 API,以支援更精確的結構和語意說明,以及觀察畫面上的元素。有了新的 API,開發人員可以為無障礙服務提供更多畫面元素資訊,進而改善無障礙意見回饋品質。
在無障礙節點中,開發人員現在可以判斷節點是否為彈出式視窗、取得輸入類型等等。您也可以使用新的 API 處理包含格狀資訊的節點,例如清單和表格。舉例來說,您現在可以指定新支援的動作、收集資訊、動態區域模式等等。
新的無障礙事件可讓開發人員更密切地追蹤視窗內容的變更,現在也可以在裝置的觸控探索模式中監聽變更。
支援國際使用者
針對 RTL 語言代碼的圖形鏡像
如果您的應用程式鎖定使用 RTL 書寫系統的使用者,您可以使用新的 API 宣告,在使用者語言代碼設定包含 RTL 語言時,應自動鏡像顯示可繪項目。
將可繪項目宣告為自動鏡像,有助於避免應用程式中重複使用素材資源,並縮減 APK 大小。如果您有可重複使用 LTR 和 RTL 呈現的可繪項目,可以將預設版本宣告為自動鏡像,然後從 RTL 資源中省略這些可繪項目。
您可以在應用程式程式碼中宣告各種可繪項目類型,以便自動鏡像處理,例如位圖、九宮格、圖層、狀態清單和其他可繪項目。您也可以使用新的屬性,宣告可繪項目在資源檔案中自動鏡像。
強制使用由右至左版面配置
為了讓您不必切換為 RTL 語言,也能輕鬆測試及偵錯版面配置鏡像問題,Android 提供新的開發人員選項,可強制所有應用程式採用 RTL 版面配置方向。
「強制 RTL 版面配置」選項會將裝置切換為所有語言代碼的 RTL 版面配置,並以目前語言顯示文字。這有助您找出應用程式中的版面配置問題,而無須以 RTL 語言顯示應用程式。您可以依序前往「設定」>「開發人員選項」>「強制使用從右至左版面配置方向」,即可存取這個選項。
安全性增強項目
SELinux (強制執行模式)
Android 4.4 將 SELinux 設定從「permissive」更新為「enforcing」。也就是說,如果 SELinux 網域中設有強制執行政策,系統就會封鎖可能違反政策的行為。
改善加密編譯演算法
Android 新增兩種加密編譯演算法的支援,進一步提升安全性。我們已在 KeyStore 供應器中新增橢圓曲線數位簽章演算法 (ECDSA) 支援功能,以提升數位簽署的安全性,適用於應用程式或資料連線簽署等情境。實作 Scrypt 金鑰衍生函式,以保護用於全磁碟加密的加密編譯金鑰。
其他強化項目
在多使用者裝置上,現在會為每位使用者套用 VPN。這樣一來,使用者就能將所有網路流量透過 VPN 轉送,不會影響裝置上的其他使用者。此外,Android 現已支援 FORTIFY_SOURCE 等級 2,所有程式碼都會採用這些防護機制進行編譯。FORTIFY_SOURCE 已強化,可與 clang 搭配使用。
用於分析記憶體用量的工具
Procstats
我們推出了名為 procstats 的新工具,可協助您分析應用程式使用的記憶體資源,以及系統上執行的其他應用程式和服務使用的資源。
Procstats 會追蹤應用程式在一段時間內的執行情形,提供應用程式執行時間和記憶體使用情形的資料,協助判斷應用程式的執行效率。對於啟動在背景執行的服務的應用程式來說,這項功能最為重要,因為您可以監控服務的執行時間長度,以及在執行期間使用的 RAM 量。Procstats 也會針對前景應用程式收集記憶體用量隨時間變化的資料,以便判斷應用程式的整體記憶體設定檔。
Procstats 可協助您找出應用程式啟動的背景服務。您可以追蹤這些服務持續執行的時間長度,以及在執行期間使用的 RAM 量。Procstats 還可讓您在應用程式處於前景時進行剖析,利用其隨著時間變化的記憶體用量,判斷整體記憶體剖析資料。
您可以透過 Android SDK 內含的 ADB 工具存取 procstats,請執行 adb shell dumpsys procstats。此外,如要瞭解裝置端剖析,請參閱下方的「Process Stats」開發人員選項。
裝置端記憶體狀態和分析
Android 4.4 提供新的開發人員選項,可在應用程式在任何裝置或模擬器上執行時,更輕鬆地分析應用程式的記憶體設定檔。這項功能特別適合用於查看應用程式如何使用記憶體,以及在低 RAM 裝置上執行的效能。您可以透過「設定」>「開發人員選項」>「程序統計資料」存取這個選項。
「Process Stats」選項會根據使用新 procstats 服務收集的資料,顯示應用程式記憶體用量的各種高層指標。您可以在主畫面上查看系統記憶體狀態摘要。綠色代表使用低 RAM 的相對時間量,黃色代表中度 RAM 使用量,紅色代表高 (危急) RAM 使用量
摘要下方列出每個應用程式在系統中的記憶體負載。對於每個應用程式,藍色長條會顯示其程序的相對計算記憶體負載 (執行時間 x avg_pss),百分比數字則表示在背景中花費的相對時間。您可以篩選清單,只顯示前景、背景或快取的程序,並且可以加入或排除系統程序。您也可以將收集資料的時間長度變更為 3、6、12 或 24 小時,並且可以加入或排除 uss 記憶體。
如要深入瞭解特定應用程式的記憶體用量,請輕觸該應用程式。現在,您可以查看每個應用程式的用量摘要,以及應用程式在收集間隔期間執行的百分比。您也可以查看收集期間的平均和最大用量,以及應用程式服務和執行時間百分比。
使用「Process Stats」中的資料分析應用程式,可以找出問題,並建議應用程式可進行的最佳化調整。舉例來說,如果應用程式執行時間過長,或在一段時間內使用過多記憶體,程式碼可能會有錯誤,您可以解決這些錯誤來改善應用程式效能,尤其是在低 RAM 裝置上執行時。