Android 14 源碼正式推送至 AOSP,官方介紹“開發(fā)環(huán)節(jié)關(guān)鍵內(nèi)容”
10 月 11 日消息,據(jù)谷歌開發(fā)者官方公眾號(hào)發(fā)文聲稱,Android 14 的源代碼目前已經(jīng)推送至 Android 開源項(xiàng)目 (AOSP)。
Android 14 旨在提高開發(fā)者的生產(chǎn)力,同時(shí)為用戶帶來(lái)更好的性能、隱私、安全和定制功能。
官方同時(shí)介紹了 Android 14 對(duì)開發(fā)者“影響最大的部分”,IT之家整理如下:
性能和效率
官方聲稱,Android 14 聚焦的重點(diǎn)領(lǐng)域之一就是“為平臺(tái)帶來(lái)更好的性能和效率表現(xiàn)”。
凍結(jié)緩存應(yīng)用
在 Android 14 之前,緩存的應(yīng)用可以基本不受限制地運(yùn)行。在 Android 14 中,系統(tǒng)會(huì)在應(yīng)用進(jìn)入緩存后很短的時(shí)間內(nèi)將其凍結(jié),其 CPU 時(shí)間降為零。
在 Android 14 Beta 上,相關(guān)緩存進(jìn)程消耗的 CPU 周期要比 Android 13 正式版設(shè)備上少 50%。
因此,常規(guī)的 Android 應(yīng)用生命周期 API (如前臺(tái)服務(wù)、JobScheduler 或 WorkManager)之外的后臺(tái)工作將被禁止。
廣播優(yōu)化
為了讓被凍結(jié)的應(yīng)用更長(zhǎng)時(shí)間保持凍結(jié)狀態(tài)(比如不會(huì)獲得 CPU 時(shí)間),官方調(diào)整了應(yīng)用進(jìn)入緩存狀態(tài)后對(duì)上下文注冊(cè)的廣播的接收方式。
更快地應(yīng)用啟動(dòng)速度
隨著 Android 14 對(duì)緩存應(yīng)用和廣播優(yōu)化措施一并到來(lái)的,是“得以打破平臺(tái)緩存應(yīng)用數(shù)量的長(zhǎng)期限制”,Android 14 減少了冷啟動(dòng)應(yīng)用的情況,而且設(shè)備 RAM 越大“改善就越明顯”。
在 8GB RAM 的設(shè)備上,Beta 測(cè)試組的冷啟動(dòng)應(yīng)用減少了 20%,而在 12GB RAM 的設(shè)備上則減少了 30%。與熱啟動(dòng)相比,冷啟動(dòng)速度較慢,而且耗電量更大。這項(xiàng)工作有效地改善了電量消耗和整體應(yīng)用啟動(dòng)時(shí)間。
減少內(nèi)存足跡
改進(jìn) Android 運(yùn)行時(shí) (Android Runtime, ART) 對(duì) Android 用戶體驗(yàn)影響巨大。
代碼大小是谷歌的關(guān)鍵指標(biāo)之一:生成的文件越小,對(duì)內(nèi)存 (包括 RAM 和存儲(chǔ)空間) 的占用就越小。在 Android 14 中,ART 可將代碼尺寸平均減小 9.3% 且不影響性能。
定制化
定制化體驗(yàn)是 Android 的核心基因,官方表示,Android 14 將進(jìn)一步圍繞用戶的定制化體驗(yàn),從而改進(jìn)了無(wú)障礙和國(guó)際化功能。
非線性字體放大
從 Android 14 開始,用戶可以將字體放大到 200%。
此前,Pixel 設(shè)備上的字體最多能放大至 130%。系統(tǒng)會(huì)采用非線性的放大曲線,讓屏幕上大文本元素的放大速度和小文本元素速度不同,從而防止大文本元素被過(guò)分放大。
▲ (左)100% 字體尺寸(中) 線性放大至 200% (右)非線性放大至 200%,圖源 谷歌
各應(yīng)用語(yǔ)言偏好設(shè)定
開發(fā)者可以使用 LocaleManager.setOverrideLocaleConfig 動(dòng)態(tài)更新應(yīng)用的 localeConfig,以自行定義在 Android 設(shè)置頁(yè)面中各個(gè)應(yīng)用語(yǔ)言列表中的語(yǔ)言清單。
IME 現(xiàn)在可以使用 LocaleManager.getApplicationLocales 獲取當(dāng)前應(yīng)用的界面語(yǔ)言,從而更新鍵盤語(yǔ)言。
從 Android Studio Giraffe 和 AGP 8.1 開始,開發(fā)者還可以對(duì)應(yīng)用進(jìn)行配置,讓其自動(dòng)支持 Android 13 各應(yīng)用語(yǔ)言偏好設(shè)定。
新的媒體功能
▲ 圖源 谷歌
Android 14 現(xiàn)在支持 10 位高動(dòng)態(tài)范圍 (HDR)圖像以及超強(qiáng) HDR 圖像格式。該格式完全向后兼容 JPEG,應(yīng)用可以無(wú)縫使用 HDR 圖像,并根據(jù)需要使用標(biāo)準(zhǔn)動(dòng)態(tài)范圍來(lái)呈現(xiàn)它們。
超強(qiáng) HDR 圖像格式
Android 14 升級(jí)和改進(jìn)了相機(jī)擴(kuò)展功能,讓應(yīng)用支持更長(zhǎng)的處理時(shí)間,通過(guò)計(jì)算密集型算法改善成像品質(zhì)。
無(wú)損 USB 音頻
Android 14 設(shè)備支持無(wú)損音頻格式,讓您可以通過(guò) USB 有線耳機(jī)獲得發(fā)燒級(jí)的音頻體驗(yàn)
新的圖形功能
Android 14 新增了對(duì)自定義網(wǎng)格的支持,這些網(wǎng)格可以被定義為三角形或三角形帶,還能根據(jù)需要支持索引。這些網(wǎng)格使用 AGSL 編寫,包含自定義屬性、頂點(diǎn)跨度、varying 變量和頂點(diǎn) / 片段著色器。
Canvas 硬件緩沖渲染器
Android 14 引入了 HardwareBufferRenderer,讓 Android 的 Canvas API 在 HardwareBuffer 中繪制時(shí)得以使用硬件加速功能。當(dāng)用例涉及到通過(guò) SurfaceControl 與系統(tǒng)合成器通信以實(shí)現(xiàn)低延遲繪制時(shí),此功能會(huì)特別有用。
跨設(shè)備以及多尺寸屏幕開發(fā)
Android 14 在 Android 12L 和 13 的基礎(chǔ)上,繼續(xù)對(duì)平板電腦和可折疊設(shè)備帶來(lái)良好的支持: 比如讓任務(wù)欄更好地支持多任務(wù)、發(fā)布針對(duì)大屏幕優(yōu)化的系統(tǒng)應(yīng)用和通知界面、Activity 嵌入,改進(jìn)了信箱模式和媒體投屏等。
提升生產(chǎn)力
Android 14 中的許多更新會(huì)讓用戶的開發(fā)體驗(yàn)更一致、更有趣,也更高效。這些更新中的許多內(nèi)容也會(huì)通過(guò) Google Play 系統(tǒng)更新、Jetpack 開發(fā)庫(kù)和 Google Play 服務(wù)在之前的平臺(tái)版本上提供,便于覆蓋更多的用戶。
OpenJDK 17 支持
借助 Google Play 系統(tǒng)更新 (Project Mainline),超過(guò) 6 億臺(tái)設(shè)備得以收到隨 Android 14 一同發(fā)布的最新 Android Runtime (ART) 更新。
Google Play 系統(tǒng)更新
憑據(jù)管理器和通行密鑰
憑據(jù)管理器是新的 Jetpack API,它可通過(guò)單一 API 支持多種登錄方法,如用戶名和密碼、通行密鑰 (Passkey) 和聯(lián)合登錄解決方案 (如使用 Google 賬號(hào)登錄),從而幫助開發(fā)者簡(jiǎn)化集成過(guò)程。憑據(jù)管理器可以通過(guò)谷歌 Play 服務(wù)一直向下支持到 Android 4.4 (API 級(jí)別 19)。
Health Connect
Health Connect 是一個(gè)由用戶控制的,用于存放用戶健康和健身數(shù)據(jù)的設(shè)備端內(nèi)容庫(kù),它讓實(shí)現(xiàn)跨應(yīng)用和跨設(shè)備的集成健康和健身體驗(yàn)變得前所未有的簡(jiǎn)單。Health Connect 是 Android 平臺(tái)的一部分,通過(guò) Google Play 系統(tǒng)更新進(jìn)行升級(jí),無(wú)需單獨(dú)下載。在更早的設(shè)備上則以應(yīng)用的形式提供,可通過(guò)谷歌 Play 商店下載。
▲ 圖源 谷歌
更強(qiáng)大的系統(tǒng) Sharesheet
Android 14 的系統(tǒng) Sharesheet 可添加自定義動(dòng)作,并改進(jìn)了共享目標(biāo)的排名機(jī)制,讓您的應(yīng)用可以輕松為用戶提供豐富、一致的共享體驗(yàn)。
提高直接共享目標(biāo)的排名
Android 14 更新了聲明前臺(tái)服務(wù)類型和請(qǐng)求特定類型權(quán)限的要求。
Google Play 服務(wù)也推出了新政策,以確保開發(fā)者合理使用這些 API。官方還新增了用戶發(fā)起的數(shù)據(jù)傳輸作業(yè)類型,可以為 JobScheduler 設(shè)置約束條件,從而簡(jiǎn)化用戶發(fā)起的大型上傳和下載的管理(如設(shè)置網(wǎng)絡(luò)約束條件,僅允許通過(guò)未計(jì)量的 Wi-Fi 進(jìn)行下載)。
用戶體驗(yàn)
預(yù)測(cè)性返回
繼 Android 13 引入“返回主屏幕”動(dòng)畫后,Android 14 引入了新的跨 Activity 和跨任務(wù)的預(yù)測(cè)性(Predictive Back)系統(tǒng)動(dòng)畫。該系統(tǒng)動(dòng)畫目前仍可在開發(fā)者選項(xiàng)中手動(dòng)啟用,以便留出時(shí)間進(jìn)行更多打磨,并讓更多應(yīng)用選擇對(duì)預(yù)測(cè)性返回進(jìn)行適配。Material 和 Jetpack 庫(kù)目前已提供預(yù)測(cè)性返回動(dòng)畫供大家使用。
隱私和安全
用戶將在位置信息的運(yùn)行時(shí)授權(quán)對(duì)話框中看到一塊新的描述,用于突出顯示應(yīng)用與第三方共享位置數(shù)據(jù)的情況,用戶可以了解更多信息并控制應(yīng)用對(duì)數(shù)據(jù)的訪問(wèn)。
▲ 圖源 谷歌
對(duì)照片和視頻授予部分訪問(wèn)權(quán)限
在 Android 14(API 級(jí)別 34)中,當(dāng)應(yīng)用請(qǐng)求 Android 13(API 級(jí)別 33)中引入的任何視覺(jué)媒體權(quán)限(READ_MEDIA_IMAGES 或 READ_MEDIA_VIDEO)時(shí),用戶可以授予對(duì)其照片和視頻的部分訪問(wèn)權(quán)限。我們建議您在應(yīng)用中采用最新的最佳實(shí)踐方案來(lái)適配此項(xiàng)變更。
后臺(tái)啟動(dòng) Activity
Android 10 (API 級(jí)別 29) 及以上版本對(duì)在后臺(tái)運(yùn)行的應(yīng)用啟動(dòng) Activity 的時(shí)機(jī)施加了限制。為進(jìn)一步減少中斷用戶體驗(yàn)的情況,以 Android 14 為目標(biāo)平臺(tái)的應(yīng)用在發(fā)送 PendingIntent 或綁定服務(wù)時(shí),需要授予啟動(dòng)特權(quán)才能在后臺(tái)啟動(dòng) Activity。
阻止安裝使用舊版 SDK 的應(yīng)用
為防止惡意軟件利用舊版 API 繞過(guò)最新的安全和隱私保護(hù)措施,從 Android 14 開始,targetSdkVersion 低于 23 的應(yīng)用將無(wú)法安裝。
運(yùn)行時(shí)接收器
以 Android 14 為目標(biāo)平臺(tái)的應(yīng)用必須說(shuō)明動(dòng)態(tài) Context.registerReceiver () 的使用是否應(yīng)被視為 "導(dǎo)出" 或 "未導(dǎo)出"。這是以前版本中清單級(jí)工作的延續(xù),請(qǐng)?jiān)L問(wèn)官方文檔了解詳細(xì)信息:
安全的全屏 Intent 通知
由于全屏 Intent 通知是專為需要用戶立即關(guān)注的極高優(yōu)先級(jí)通知而設(shè)計(jì)的,因此 Android 14 將只允許提供通話和鬧鐘功能的應(yīng)用在安裝時(shí)獲取該權(quán)限。您的應(yīng)用可以啟動(dòng)設(shè)置頁(yè)面讓用戶完成授權(quán)。
更安全的動(dòng)態(tài)代碼加載
以 Android 14 為目標(biāo)平臺(tái)的應(yīng)用動(dòng)態(tài)加載的文件需要標(biāo)記為只讀。請(qǐng)?jiān)L問(wèn)官方
更安全的隱式 Intent
以 Android 14 為目標(biāo)平臺(tái)的應(yīng)用在使用隱式 Intent 創(chuàng)建可變的 PendingIntent 時(shí)將拋出一個(gè)異常,以防它們被用來(lái)觸發(fā)意外的代碼路徑。
應(yīng)用兼容性
在發(fā)布新的平臺(tái)版本時(shí),官方表示“會(huì)優(yōu)先考慮應(yīng)用的兼容性”,以“讓更新過(guò)程更快、更順暢”。
在 Android 14 中,大多數(shù)面向應(yīng)用的變更依然是可選的,這樣能為大家提供更多的時(shí)間進(jìn)行調(diào)整和適配,直到開發(fā)者將應(yīng)用的 targetSdkVersion 升級(jí)為 34。我們還更新了工具和流程,幫助大家更快地做好準(zhǔn)備。
更輕松地針對(duì)變更進(jìn)行測(cè)試和調(diào)試
為了讓開發(fā)者更輕松地測(cè)試可能會(huì)影響應(yīng)用的可選變更,官方今年依然為許多變更提供了開關(guān)選項(xiàng)??梢栽凇伴_發(fā)者選項(xiàng)”或 adb 中“單獨(dú)強(qiáng)制啟用或停用這些變更”。
▲ 開發(fā)者選項(xiàng)中的應(yīng)用兼容性開關(guān),圖源 谷歌
官方聲稱,如果您是 SDK、開發(fā)庫(kù)、工具和游戲引擎的開發(fā)者,現(xiàn)在發(fā)布必要的更新相當(dāng)重要:
您的更新能讓下游的應(yīng)用和游戲開發(fā)者免遭兼容性問(wèn)題困擾,并能及時(shí)引入最新的 SDK 功能特性。因此,請(qǐng)務(wù)必在發(fā)布了 Android 14 所必需的兼容性更新后,及時(shí)告知您的下游開發(fā)者們。
只需在運(yùn)行 Android 14 的設(shè)備上,通過(guò) Google Play 或其他來(lái)源安裝您的正式版應(yīng)用即可開始測(cè)試。請(qǐng)測(cè)試應(yīng)用的所有流程,找出功能或用戶界面中暴露的問(wèn)題。請(qǐng)通過(guò)行為變更清單(針對(duì)所有應(yīng)用)來(lái)確定測(cè)試重點(diǎn)
隨著 Android 每個(gè)版本的發(fā)布,我們都會(huì)對(duì)平臺(tái)進(jìn)行整體的改進(jìn),以強(qiáng)化隱私和安全,并優(yōu)化整個(gè)操作系統(tǒng)的用戶體驗(yàn),這些都可能會(huì)影響到您的應(yīng)用。
參考