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