Android 14 如期發布,Android 工程副總裁 Dave Burke 發文詳細介紹了這一版本的新功能。
原文地址:https://android-developers.googleblog.com/2023/10/android-14-is-live-in-aosp.html
作者 | GPT-3.5 責編 | 夢依丹
出品 | CSDN(ID:CSDNnews)
Android 14 已正式發布,其源代碼已上傳至 Android 開源項目(AOSP)。Android 14 旨在提升開發者的工作效率,同時增強性能、隱私、安全性,以及用戶的個性化體驗。
從發布之日開始,Android 14 將逐步推向部分 Pixel 設備,而在今年晚些時候,您還可以在一些您喜愛的設備上找到它,包括三星 Galaxy、iQOO、Nothing、OnePlus、Oppo、Realme、Sharp、Sony、Tecno、vivo 和小米。
本文重點介紹了對開發者影響最大的 Android 14 變化。要查看 Android 14 的所有變更,請訪問 Android 14 開發者網站:https://developer.android.com/about/versions/14。
性能與效率
Android 14 的一個主要關注點是提升平臺的性能和效率。
凍結緩存應用
在 Android 14 之前,緩存應用程序的運行相對自由。而在 Android 14 中,我們會在一段時間后凍結這些緩存應用,使它們不再占用 CPU 時間。在 Android 14 Beta 版本中,我們發現相比于 Android 13 公開設備,緩存進程的 CPU 使用量降低了高達 50%。因此,除了傳統的 Android 應用生命周期 API,如前臺服務、JobScheduler 或 WorkManager,后臺工作將受到限制。
廣播優化
為了延長緩存應用程序的凍結時間(即不獲得 CPU 時間),我們調整了應用程序在進入緩存狀態后接收上下文注冊廣播的方式;這些廣播可能會被排隊,并且重復的廣播,如電池狀態改變(BATTERY_CHANGED),可能會合并成一個廣播。
更快的應用啟動
通過對緩存應用和廣播進行優化,Android 14 增加了平臺中緩存應用的最大數量的長期限制,從而減少了冷啟動應用的次數,而這一改進將根據設備的內存容量而擴展。在 8GB 設備上,測試團隊看到冷啟動應用的數量減少了 20%,而在 12GB 設備上減少了超過 30%。冷啟動相對于熱啟動來說速度較慢,而且在電能方面成本較高。這一工作有效地改善了電能使用和整體應用啟動時間。
減少內存占用
改進 Android 運行時(ART)對 Android 用戶體驗有著重要影響。代碼大小是我們關注的關鍵指標之一;生成的文件越小,對內存(包括 RAM 和存儲空間)的影響就越小。在 Android 14 中,ART 包含了優化措施,將代碼大小平均減少了 9.3%,而不會影響性能。
定制
定制一直是 Android 基因中的核心要素,而 Android 14 則延續了我們對 Android 用戶的承諾,使他們能夠根據個人需求調整自己的使用體驗,包括增強的可訪問性和國際化功能。
具有非非線性縮放功能的更大字體- 從 Android 14 開始,用戶能夠將字體放大到 200%。之前,在 Pixel 設備上,最大的字體縮放比例為 130%。我們采用了非線性字體縮放曲線,以確保已經足夠大的文本不會像較小的文本一樣以相同的速度增大。
每個應用的語言偏好設置 - 您可以使用 LocaleManager.setOverrideLocaleConfig 動態更新應用的 localeConfig,用來自定義 Android 設置中每個應用的語言列表中顯示的語言集。輸入法編輯器 (IME) 現在可以使用 LocaleManager.getApplicationLocales 來了解當前應用的界面語言,以便更新鍵盤語言。從 Android Studio Giraffe 和 AGP 8.1 開始,您可以配置您的應用以自動支持 Android 13 的每個應用的語言偏好。
區域偏好設置- 區域偏好設置允許用戶個性化溫度單位、每周的第一天以及數字系統。
Grammatical Inflection - Grammatical InflectionAPI 允許您更輕松地為使用有語法性別的語言的用戶添加支持。為了展示個性化的翻譯,您只需要為受影響的語言添加每個語法性別的翻譯并集成該 API。
新媒體功能
圖像的 Ultra HDR - Android 14 增加了對 10 位高動態范圍(HDR)圖像的支持,并支持超級高動態范圍圖像格式。該格式與 JPEG 完全向后兼容,使應用程序能夠與 HDR 圖像無縫交互。
相機擴展中的縮放、對焦、后視圖等功能- Android 14 升級并改進了相機擴展,允許應用程序處理更長的處理時間,從而在支持的設備上使用計算密集型算法,例如低光條件下的攝影,以獲得更出色的圖像。
無損 USB 音頻- Android 14 設備可以支持無損音頻格式,從而實現了通過USB有線耳機獲得音樂發燒友級別的音頻體驗。
新的圖形能力
使用頂點和片段著色器的自定義網格- Android 14 增加了對自定義網格的支持,這些網格可以定義為三角形或三角形條帶,并且可以選擇進行索引。這些網格是通過自定義屬性、頂點步幅、varying,以及在 AGSL 中編寫的頂點/片段著色器來指定的。
Canvas 的硬件緩沖渲染器- Android 14 引入了 HardwareBufferRenderer 來協助使用 Android 的 Canvas API 以硬件加速的方式繪制到 HardwareBuffer 中。這在您的使用情況涉及通過 SurfaceControl 與系統合成器進行低延遲繪制時特別有幫助。
跨形態開發
Android 14 在 Android 12L 和 13 中的工作基礎上,支持平板電腦和可折疊外形因素,包括支持增強多任務處理的任務欄、大屏幕優化的系統應用和通知界面、活動嵌入、增強型信函板、改進的媒體投影等功能。我們提供了適用于大屏幕的應用質量指導,以及關于為大屏幕和可折疊設備開發的額外學習機會,幫助您優化應用在所有 Android 設備上的表現。此外,大屏幕設計畫廊還包括了社交與通訊、媒體、生產力、購物和閱讀應用的設計模式和靈感。
提高生產力
Android 14 包含了許多更新,專注于使您的開發體驗更加一致、有趣和高效。這些更新中的許多通過結合使用Google Play系統更新、Jetpack庫和Google Play服務,已經在較舊的平臺版本上提供,因此您可以借此觸達更多用戶。
OpenJDK 17 支持- 得益于 Google Play 系統更新(Project MAInline),超過 6 億臺設備都能夠接收到隨 Android 14一同發布的最新 Android 運行時(ART)更新。
憑據管理器和密碼匙支持- 憑據管理器是一種新的 Jetpack API,它支持多種登錄方法,包括用戶名和密碼、密碼匙以及聯合登錄解決方案(例如,與谷歌一起登錄),全部集成在一個API中,從而簡化了您的集成過程。通過使用Google Play 服務,Credential Manager 支持回溯至 Android 4.4(API級別19)。
Health Connect - Health Connect 是一個由用戶控制的設備上存儲用戶健康和健身數據的倉庫,它使得跨應用程序和連接設備之間實現集成的健康和健身體驗變得比以往更加容易。Health Connect 是 Android 平臺的一部分,通過 Google Play 系統更新進行更新,無需單獨下載,同時也可在 Google Play 商店上作為應用提供給舊版設備。
卓越的系統共享表- 為了讓您的應用程序用戶獲得豐富、一致的共享體驗,Android 14 中的系統共享表可以進行自定義操作和改進排名的配置。
更一致、更可靠的前臺服務- 我們與三星等硬件制造商合作,旨在打造更一致的開發者體驗和更可靠的用戶體驗。因此,Android 14 引入了新的要求,需要聲明前臺服務類型并請求特定類型的權限,同時我們也制定了 Google Play 政策來強制執行這些 API 的適當使用。此外,我們還新增了一種用戶發起的數據傳輸工作類型,通過利用 JobScheduler 的約束條件(例如,無計量的 wifi 等網絡約束條件),使用戶能夠更順暢地管理大型用戶發起的上傳和下載操作。
用戶體驗
預測性返回- Android 14 引入了新的預測性返回系統動畫,包括跨活動和跨任務的動畫,以擴展 Android 13 中引入的返回主頁動畫。這些系統動畫仍然處于開發者選項之后,以便有更多的時間進行進一步的完善,并讓更多的應用程序選擇使用預測性返回功能。Material 和 Jetpack 預測性返回動畫已經可以供用戶使用。
隱私和安全
數據共享更新- 用戶將在位置運行時權限對話框中看到一個新的部分,該部分突出顯示了應用程序與第三方共享位置數據的情況,用戶可以在此獲取更多信息并控制應用程序的數據訪問。
照片和視頻的部分訪問權限 - 當您的應用程序針對 SDK 34 請求 SDK 33 引入的任何視覺媒體權限(READ_MEDIA_IMAGES / READ_MEDIA_VIDEO)時,Android 14 用戶現在可以選擇只允許您的應用程序訪問特定的照片和視頻。為了使您的應用程序適應這一變化,我們建議您遵循我們最近的最佳實踐。
后臺活動啟動- Android 10(API 級別 29)及更高版本對應用程序在后臺運行時啟動活動的時間做出了限制。為了進一步減少意外中斷的情況,針對 Android 14 的應用程序需要在發送 PendingIntent 或綁定服務時授予后臺啟動活動的權限。
阻止安裝舊版 SDK 的應用程序- 為了防止針對舊版 API 級別繞過安全和隱私保護措施的惡意軟件,Android 14 不允許安裝目標SDK版本低于23的應用程序。
運行時接收器- 針對 Android 14 的應用程序必須明確指示是否應將動態 Context.registerReceiver 的使用視為 "已導出" 或 "未導出",這是前幾個版本中清單級工作的延續。
安全的全屏意圖通知- 由于全屏意圖通知設計用于極高優先級的通知,要求用戶立即關注,因此 Android 14 僅在應用安裝時授予權限給那些只提供通話和鬧鐘功能的應用程序。您的應用程序現在可以啟動設置頁面,讓用戶授予權限。
更安全的動態代碼加載- 針對 Android 14 的應用程序要求將動態加載的文件標記為只讀。
更安全的隱式意圖- 針對 Android 14 的應用程序,使用隱式意圖創建可變的待定意圖將引發異常,從而防止它們被用于觸發意外的代碼路徑。應用程序需要將待定意圖設為不可變,或將意圖設為顯式。
應用程序兼容性
我們致力于通過優先考慮應用程序兼容性,使每個平臺發布的更新更加快速和平穩。在 Android 14 中,我們將大多數影響應用程序的變化設置為選擇性,直到您的應用程序目標 SDK 版本達到 34,以便您有更多時間進行必要的應用程序更改。我們還更新了工具和流程,以幫助您更早地做好準備。
更容易測試和調試更改- 為了讓您更容易測試可能會影響您的應用程序的選擇性更改,今年我們將再次提供許多開關功能。通過這些開關,您可以從開發者選項或使用 adb 單獨啟用或禁用這些更改。
為您的應用程序、庫、工具和游戲引擎做好準備!
現在是完成最終兼容性測試并發布任何必要更新以確保應用程序體驗順暢的時候了。
如果您開發的是 SDK、庫、工具或游戲引擎,那么現在更重要的是發布任何必要的更新,以防止下游的應用程序和游戲開發人員受到兼容性問題的阻礙,并讓他們能夠針對最新的 SDK 功能。請務必告知您的開發人員是否需要更新以完全支持 Android 14。
測試您的應用程序涉及將您的生產應用程序安裝到運行 Android 14 的設備上;您可以使用 Google Play 或其他方式。在所有應用程序流程上進行測試,查找功能或用戶界面方面的問題。查看行為變更以便更集中地進行測試。每個 Android 版本都包含對平臺的變更,這些變更旨在改進隱私、安全性和整體用戶體驗,而這些變更可能會影響您的應用程序。以下是一些需要測試的主要變更:
允許對照片和視頻進行部分訪問- 在 Android 14 上,當應用程序請求 Android 13(API 級別 33)引入的任何可視媒體權限時:READ_MEDIA_IMAGES 或 READ_MEDIA_VIDEO,用戶可以授予對其照片和視頻的部分訪問權限。如果您的應用程序已經使用了照片選擇器,您無需采取任何措施來支持此更改。否則,您應該使用新的 READ_MEDIA_VISUAL_USER_SELECTED 權限來優化用戶體驗。
安全的全屏意圖通知- 在 Android 14 上,創建全屏意圖通知的應用程序僅限于提供電話和鬧鐘功能的應用程序。對于不符合這個配置的應用程序,Google Play 商店會撤銷默認的 USE_FULL_SCREEN_INTENT 權限。
默認情況下拒絕安排精確的通知- 從 Android 14 開始,SCHEDULE_EXACT_ALARM 權限不再被預先授予大多數針對 Android 13 及更高版本的新安裝應用程序,該權限默認被拒絕。
非線性字體縮放至 200% - 從 Android 14 開始,系統支持將小文字大小的字體縮放至 200%,為低視力用戶提供了符合 Web 內容可訪問性指南(WCAG)的附加可訪問性選項。
切記在兼容性測試中使用應用程序正在使用的庫和 SDK。您可能需要更新到當前的 SDK 版本,或向開發人員尋求幫助。
發布當前應用程序的兼容版本后,您就可以開始更新應用程序的 targetSdkVersion。查看應用針對 Android 14 時適用的行為變化,并使用兼容性框架幫助快速檢測問題。