Android 14的第一個(gè)開發(fā)者預(yù)覽版
讓 Android 為數(shù)十億 Android 用戶中的每一位用戶提供良好的服務(wù)是我們 Android 硬件制造商與您(我們的開發(fā)人員社區(qū))之間的協(xié)作過程。
2月8日,安卓發(fā)布了 Android 14 的第一個(gè)開發(fā)者預(yù)覽版,您在這些預(yù)覽版中的反饋是讓 Android 更好地服務(wù)于所有人的關(guān)鍵部分。Android 14 繼續(xù)致力于提高開發(fā)人員的工作效率,同時(shí)增強(qiáng)性能、隱私、安全性和用戶自定義。此預(yù)覽只是一個(gè)開始,隨著發(fā)布周期的推進(jìn),我們將分享更多內(nèi)容。
Android 全年不斷提供增強(qiáng)功能和新功能,您的 Android 14 開發(fā)者預(yù)覽版和季度平臺(tái)發(fā)布 (QPR) 測(cè)試版計(jì)劃反饋在幫助 Android 不斷改進(jìn)方面發(fā)揮著關(guān)鍵作用。Android 14 開發(fā)者網(wǎng)站提供了更多關(guān)于預(yù)覽版的信息,包括 Pixel 的下載和發(fā)布時(shí)間表。我們期待聽到您的想法,并提前感謝您一直以來(lái)的幫助,使 Android 成為適用于所有人的平臺(tái)。
跨設(shè)備和外形規(guī)格工作
Android 14 建立在 Android 12L 和 13 中完成的工作之上,以支持平板電腦和可折疊外形。為了幫助您構(gòu)建適應(yīng)不同屏幕尺寸的應(yīng)用程序,我們創(chuàng)建了窗口大小類、滑動(dòng)窗格布局、活動(dòng)嵌入和帶約束的框等,所有這些都在 Jetpack Compose 中受支持。對(duì)于每個(gè)版本,我們的目標(biāo)是讓您更輕松地在所有 Android 平臺(tái)上優(yōu)化您的應(yīng)用程序。
為了幫助簡(jiǎn)化應(yīng)用程序的準(zhǔn)備工作,我們更新了針對(duì)大屏幕的應(yīng)用程序質(zhì)量指南,并提供了有關(guān)構(gòu)建大屏幕和可折疊設(shè)備的更多學(xué)習(xí)機(jī)會(huì)。大屏幕畫廊包含經(jīng)過驗(yàn)證的設(shè)計(jì)模式以及圍繞您的應(yīng)用程序支持的市場(chǎng)的設(shè)計(jì)靈感,例如 社交和通信、媒體、生產(chǎn)力、購(gòu)物和閱讀應(yīng)用程序。
多設(shè)備體驗(yàn)是 Android 未來(lái)的重要組成部分。您今天就可以開始使用跨設(shè)備 SDK預(yù)覽版,讓您能夠構(gòu)建豐富的體驗(yàn),這些體驗(yàn)可以直觀地跨不同的設(shè)備和外形規(guī)格工作,而且還會(huì)有更多。
簡(jiǎn)化后臺(tái)工作
Android 14 繼續(xù)努力優(yōu)化應(yīng)用程序協(xié)同工作的方式,改善系統(tǒng)健康狀況和電池壽命,并改善最終用戶體驗(yàn)。
JobScheduler 和前臺(tái)服務(wù)的更新和添加
執(zhí)行一些后臺(tái)工作比必要的更復(fù)雜,例如在 WiFi 可用時(shí)下載大文件。我們正在為這項(xiàng)工作創(chuàng)建一個(gè)標(biāo)準(zhǔn)路徑,以簡(jiǎn)化您的應(yīng)用程序開發(fā)并可能改善用戶體驗(yàn)。我們對(duì)前臺(tái)服務(wù)的使用方式也更加固執(zhí)己見,只為最高優(yōu)先級(jí)的面向用戶的任務(wù)保留它們,以便 Android 可以改善資源消耗和電池壽命。
在 Android 14 中,我們正在對(duì)現(xiàn)有的 Android API(前臺(tái)服務(wù)和JobScheduler )進(jìn)行更改,包括為用戶啟動(dòng)的數(shù)據(jù)傳輸添加新功能,以及聲明前臺(tái)服務(wù)類型的更新要求。用戶啟動(dòng)的數(shù)據(jù)傳輸作業(yè)將使管理用戶啟動(dòng)的下載和上傳更加容易,特別是當(dāng)它們需要限制時(shí),例如僅在 Wi-Fi 上下載。聲明前臺(tái)服務(wù)類型的要求允許您清楚地定義應(yīng)用程序后臺(tái)工作的意圖,同時(shí)明確哪些用例適合前臺(tái)服務(wù)。此外,Google Play 將推出新政策以確保正確使用這些 API,更多細(xì)節(jié)即將推出。
優(yōu)化廣播
我們對(duì)內(nèi)部廣播系統(tǒng)進(jìn)行了多項(xiàng)優(yōu)化,以提高電池壽命和響應(yīng)速度。雖然大多數(shù)優(yōu)化是 Android 內(nèi)部的,不會(huì)影響您的應(yīng)用程序,但我們已經(jīng)調(diào)整了應(yīng)用程序進(jìn)入緩存狀態(tài)后接收上下文注冊(cè)廣播的方式。對(duì)上下文注冊(cè)的接收者的廣播可能會(huì)排隊(duì),并且只有在它脫離緩存狀態(tài)后才會(huì)傳遞給應(yīng)用程序。此外,一些重復(fù)的上下文注冊(cè)廣播,例如BATTERY_CHANGED,一旦應(yīng)用程序脫離緩存狀態(tài),可能會(huì)在交付之前合并為一個(gè)最終廣播。
精確報(bào)警?
調(diào)用確切的警報(bào)會(huì)顯著影響設(shè)備的資源,例如電池壽命。因此在 Android 14 中,新安裝的針對(duì) Android 13+(SDK 33+)的非時(shí)鐘或日歷應(yīng)用必須請(qǐng)求用戶授予它們SCHEDULE_EXACT_ALARM 特殊權(quán)限,然后才能設(shè)置確切的鬧鐘。應(yīng)用程序可以通過切換此權(quán)限的意圖將用戶引導(dǎo)至設(shè)置頁(yè)面,但我們鼓勵(lì)您評(píng)估您的用例并盡可能選擇更靈活的計(jì)劃替代方案。
針對(duì) Android 13+ (SDK 33+) 的時(shí)鐘和日歷應(yīng)用依賴精確警報(bào)作為其核心應(yīng)用工作流程的一部分,將能夠改為聲明USE_EXACT_ALARM普通權(quán)限(在安裝時(shí)授予)。應(yīng)用程序?qū)o(wú)法使用清單中的此權(quán)限將其應(yīng)用程序版本發(fā)布到 Play 商店,除非它們符合政策語(yǔ)言的要求。
客制化
我們將繼續(xù)確保 Android 用戶可以根據(jù)他們的個(gè)人需求調(diào)整他們的體驗(yàn),包括增強(qiáng)的可訪問性和國(guó)際化功能。
具有非線性縮放的更大字體
從 Android 14 開始,用戶將能夠?qū)⒆煮w放大到 200%。以前,Pixel 設(shè)備上的最大字體大小比例為 130%。
為了緩解文本過大的問題,從 Android 14 開始,系統(tǒng)會(huì)自動(dòng)應(yīng)用非線性字體縮放曲線。這確保已經(jīng)足夠大的文本不會(huì)以與較小文本相同的速率增加。
在 Android 14 中,您應(yīng)該使用“輔助功能”>“顯示大小和文本”設(shè)置中的“字體大小”選項(xiàng),以最大字體大小測(cè)試您的應(yīng)用 UI 。確保調(diào)整后的大文本大小設(shè)置反映在 UI 中,并且不會(huì)導(dǎo)致文本被截?cái)唷N覀兊奈臋n有更多關(guān)于最佳實(shí)踐的內(nèi)容。
每個(gè)應(yīng)用程序的語(yǔ)言首選項(xiàng)
可以使用LocaleManager.setOverrideLocaleConfig 動(dòng)態(tài)更新應(yīng)用的 localeConfig,以自定義 Android 設(shè)置中每個(gè)應(yīng)用語(yǔ)言列表中顯示的語(yǔ)言集。這允許您自定義每個(gè)區(qū)域的語(yǔ)言列表、運(yùn)行 A/B 實(shí)驗(yàn),并在您的應(yīng)用程序使用服務(wù)器端本地化推送時(shí)提供更新的語(yǔ)言環(huán)境。
IME 現(xiàn)在可以使用LocaleManager.getApplicationLocales了解當(dāng)前應(yīng)用程序的 UI 語(yǔ)言以更新鍵盤語(yǔ)言。
語(yǔ)法變形 API
Grammatical Infection API允許您更輕松地為使用具有語(yǔ)法性別的語(yǔ)言的用戶添加支持 。例如,
男:“你訂閱了……”
女性:“你訂閱了……”
中性:“訂閱……已啟用”
語(yǔ)法性別是語(yǔ)言固有的,在某些非英語(yǔ)語(yǔ)言中不容易解決。與必須在每個(gè)字符串基礎(chǔ)上應(yīng)用的 ICU 中的 SelectFormat 相比,這個(gè)新的 API 減少了支持查看者性別(誰(shuí)在查看 UI;而不是在談?wù)撜l(shuí))的工作。
要顯示個(gè)性化翻譯,您只需為受影響語(yǔ)言的每個(gè)語(yǔ)法性別添加變形的翻譯并集成 API。
隱私和安全
運(yùn)行時(shí)接收器
以 Android 14 為目標(biāo)平臺(tái)的應(yīng)用必須指明動(dòng)態(tài)Context.registerReceiver()的使用是否應(yīng)被視為“已導(dǎo)出”或“未導(dǎo)出”,這是之前版本清單級(jí)工作的延續(xù)。
更安全的隱式意圖
為防止惡意應(yīng)用程序攔截意圖,針對(duì) Android 14 的應(yīng)用程序被限制在內(nèi)部發(fā)送未指定包的意圖。
更安全的動(dòng)態(tài)代碼加載
動(dòng)態(tài)代碼加載 (DCL) 為惡意軟件和漏洞利用引入了出口,因?yàn)閯?dòng)態(tài)下載的可執(zhí)行文件可能會(huì)被意外操縱,從而導(dǎo)致代碼注入。針對(duì) Android 14 的應(yīng)用需要將動(dòng)態(tài)加載的文件標(biāo)記為只讀。
阻止安裝應(yīng)用程序
惡意軟件通常以較舊的 API 級(jí)別為目標(biāo),以繞過較新 Android 版本中引入的安全和隱私保護(hù)。為了防止這種情況,從 Android 14 開始,targetSdkVersion低于 23 的應(yīng)用將無(wú)法安裝。選擇此特定版本是因?yàn)槟承阂廛浖?yīng)用程序使用 targetSdkVersion 22 以避免受到 Android 6.0(API 級(jí)別 23)于 2015 年引入的運(yùn)行時(shí)權(quán)限模型的約束。
在升級(jí)到 Android 14 的設(shè)備上,targetSdkVersion 低于 23 的任何應(yīng)用都將保持安裝狀態(tài)。
可以使用以下 ADB 命令測(cè)試針對(duì)較舊 API 級(jí)別的應(yīng)用:
adb install --bypass-low-target-sdk-block 文件名.apk
憑據(jù)管理器和密鑰支持
我們最近發(fā)布了Credential Manager的 alpha 版本,這是一種新的 Jetpack API,可讓您簡(jiǎn)化用戶的身份驗(yàn)證過程,同時(shí)還通過對(duì)密鑰的支持提高安全性。密鑰是密碼和其他可釣魚身份驗(yàn)證因素的更安全替代品,并且對(duì)用戶來(lái)說(shuō)更方便(它們只需要生物識(shí)別刷卡即可在任何設(shè)備上安全登錄)。
應(yīng)用兼容性
我們正在努力通過優(yōu)先考慮應(yīng)用程序兼容性來(lái)使每個(gè)平臺(tái)版本的更新更快、更順暢。在 Android 14 中,我們對(duì)大多數(shù)面向應(yīng)用的更改進(jìn)行了選擇加入,以便您有更多時(shí)間進(jìn)行任何必要的應(yīng)用更改,并且我們更新了我們的工具和流程,以幫助您更快地做好準(zhǔn)備。
OpenJDK 17 支持- 此預(yù)覽包括對(duì) 300 個(gè) OpenJDK 17 類的訪問。我們正在努力在即將推出的開發(fā)人員預(yù)覽版中完全啟用 Java 17 語(yǔ)言功能。這些包括記錄類、多行字符串和模式匹配 instanceof。得益于Google Play 系統(tǒng)更新(Project Mainline),超過 6 億臺(tái)設(shè)備能夠接收包含這些更改的最新 Android 運(yùn)行時(shí) (ART) 更新。這是我們承諾的一部分,即為應(yīng)用程序提供跨設(shè)備的更一致、更安全的環(huán)境,并為用戶提供獨(dú)立于平臺(tái)版本的新特性和功能。
更輕松地測(cè)試和調(diào)試更改- 為了讓您更輕松地測(cè)試可能影響您的應(yīng)用程序的選擇加入更改,我們將在今年再次將其中的許多更改設(shè)為可切換。通過切換,您可以從開發(fā)人員選項(xiàng)或 中單獨(dú)強(qiáng)制啟用或禁用更改adb。
開發(fā)人員選項(xiàng)中的應(yīng)用程序兼容性切換
平臺(tái)穩(wěn)定性里程碑- 與去年一樣,我們提前讓您知道我們的平臺(tái)穩(wěn)定性里程碑,以便您有更多時(shí)間規(guī)劃應(yīng)用程序兼容性工作。在這個(gè)里程碑,我們將提供最終的 SDK/NDK API 以及最終的內(nèi)部 API 和面向應(yīng)用程序的系統(tǒng)行為。我們預(yù)計(jì)將在 2023 年 6 月達(dá)到平臺(tái)穩(wěn)定性,從那時(shí)起您將有幾周的時(shí)間在正式發(fā)布前進(jìn)行最終測(cè)試。
開始使用 Android 14
Developer Preview 包含您嘗試 Android 14 功能、測(cè)試您的應(yīng)用以及向我們提供反饋所需的一切。要使用平板電腦和可折疊設(shè)備測(cè)試您的應(yīng)用程序,最簡(jiǎn)單的入門方法是在 Android Studio SDK Manager的最新預(yù)覽版中使用平板電腦或可折疊配置中的 Android Emulator 。對(duì)于手機(jī),您可以立即開始使用Pixel 7 Pro、Pixel 7、Pixel 6a、Pixel 6 Pro、Pixel 6、Pixel 5a 5G、Pixel 5 或 Pixel 4a (5G)設(shè)備上的系統(tǒng)映像。如果您沒有 Pixel 設(shè)備,則可以將 64 位系統(tǒng)映像與 Android Studio 中的 Android Emulator 結(jié)合使用。
為了獲得 Android 14 的最佳開發(fā)體驗(yàn),我們建議您使用最新的Android Studio Giraffe預(yù)覽版(或更新的 Giraffe+ 版本)。設(shè)置完成后,您應(yīng)該執(zhí)行以下操作:
?試用新功能和 API - 在開發(fā)人員預(yù)覽的早期階段,您的反饋至關(guān)重要。在反饋?lái)?yè)面上報(bào)告我們跟蹤器中的問題。
?測(cè)試您當(dāng)前應(yīng)用的兼容性——了解您的應(yīng)用是否受到 Android 14 中默認(rèn)行為變化的影響;將您的應(yīng)用程序安裝到運(yùn)行 Android 14 的設(shè)備或模擬器上,并對(duì)其進(jìn)行廣泛測(cè)試。
?使用選擇加入更改測(cè)試您的應(yīng)用程序- Android 14 具有選擇加入行為更改,僅當(dāng)您的應(yīng)用程序以新平臺(tái)為目標(biāo)時(shí)才會(huì)影響它。盡早了解和評(píng)估這些變化很重要。為了更容易測(cè)試,您可以單獨(dú)打開和關(guān)閉更改。
我們將在整個(gè) Android 14 發(fā)布周期中定期更新預(yù)覽系統(tǒng)映像和 SDK。此初始預(yù)覽版僅供開發(fā)人員使用,不適合日常使用或消費(fèi)者使用,因此我們僅通過手動(dòng)下載提供。手動(dòng)安裝預(yù)覽版本后,您將自動(dòng)通過無(wú)線方式獲取所有以后的預(yù)覽版和 Beta 版的未來(lái)更新。在這里閱讀更多。
如果您打算從Android 13 QPR Beta計(jì)劃轉(zhuǎn)移到 Android 14 Developer Preview 計(jì)劃并且不想擦除您的設(shè)備,我們建議您現(xiàn)在轉(zhuǎn)移到 Developer Preview 1。否則,您可能會(huì)遇到 Android 13 Beta 的構(gòu)建日期更新的時(shí)間段,這將阻止您在不執(zhí)行數(shù)據(jù)擦除的情況下直接進(jìn)入 Android 14 Developer Preview。
當(dāng)我們發(fā)布 Beta 版時(shí),我們也將邀請(qǐng)消費(fèi)者試用 Android 14,屆時(shí)我們將開放 Android Beta 計(jì)劃的注冊(cè)。目前,請(qǐng)注意 Android Beta 程序尚不適用于 Android 14。
發(fā)布者:工程副總裁 Dave Burke
來(lái)源:https://android-developers.googleblog.com/2023/02/first-developer-preview-android14.html