作者 / Dave Burke, VP of Engineering
讓 Android 在數(shù)十億用戶的手中良好運(yùn)行,是我們、Android 設(shè)備制造商,以及開(kāi)發(fā)者社區(qū)的一致追求。
今天,我們?yōu)榇蠹規(guī)?lái) Android 14 的第一個(gè)開(kāi)發(fā)者預(yù)覽版。大家針對(duì)預(yù)覽版提出的反饋具有重要意義,必將惠及 Android 生態(tài)中的每一個(gè)人。我們?cè)?Android 14 中繼續(xù)提升開(kāi)發(fā)者生產(chǎn)力,并在性能、隱私、安全和用戶定制方面不斷改進(jìn)。這個(gè)預(yù)覽版僅僅是個(gè)開(kāi)始,我們會(huì)在后續(xù)的發(fā)布中和大家分享更多內(nèi)容。 每一年 Android 都會(huì)帶來(lái)改進(jìn)和新的功能,在這一路的進(jìn)化過(guò)程中,大家在 Android 14 開(kāi)發(fā)者預(yù)覽版和季度平臺(tái)發(fā)布 (Quarterly Platform Release, QPR) Beta 版測(cè)試計(jì)劃中提交的反饋至關(guān)重要。我們?cè)?Android 14 開(kāi)發(fā)者網(wǎng)站提供了很多關(guān)于本次預(yù)覽版的信息,包括 Pixel 系統(tǒng)映像的下載和發(fā)布時(shí)間表。非常期待聽(tīng)到大家的想法,在這里我們提前感謝大家,是大家的持續(xù)支持,讓 Android 能成為屬于每一個(gè)人的平臺(tái)!
-
Android 14 開(kāi)發(fā)者網(wǎng)站
https://developer.android.google.cn/about/versions/14
跨設(shè)備以及多尺寸屏幕的支持
Android 14 在 Android 12L 和 13 的基礎(chǔ)上,繼續(xù)對(duì)平板電腦和可折疊設(shè)備帶來(lái)良好的支持。為了幫助您構(gòu)建適配各種屏幕尺寸的應(yīng)用,我們?cè)?Jetpack Compose 中提供了窗口大小類別、滑動(dòng)窗格布局 (SlidingPaneLayout)、Activity 嵌入,以及使用約束布局的 Box (BoxWithConstraints) 等內(nèi)容。隨著每一次平臺(tái)更新,我們都會(huì)幫助您更輕松地在所有 Android 支持的屏幕上優(yōu)化自己的應(yīng)用。
- 窗口大小類別https://developer.android.google.cn/guide/topics/large-screens/support-different-screen-sizes#window_size_classes
- 滑動(dòng)窗格布局https://developer.android.google.cn/guide/topics/large-screens/support-different-screen-sizes#SlidingPaneLayout
- Activity 嵌入https://developer.android.google.cn/guide/topics/large-screens/activity-embedding
- 使用約束布局的 Boxhttps://developer.android.google.cn/reference/kotlin/androidx/compose/foundation/layout/package-summary#BoxWithConstraints(androidx.compose.ui.Modifier,androidx.compose.ui.Alignment,kotlin.Boolean,kotlin.Function1)
-
大屏幕設(shè)備應(yīng)用質(zhì)量指南
https://developer.android.google.cn/docs/quality-guidelines/tablet-app-quality
-
大屏幕使用入門
https://developer.android.google.cn/guide/topics/large-screens/get-started-with-large-screens
-
為可折疊設(shè)備構(gòu)建應(yīng)用
https://developer.android.google.cn/guide/topics/ui/foldables
-
通過(guò)大屏設(shè)備擴(kuò)展用戶體驗(yàn)
https://developer.android.google.cn/large-screens/gallery
-
多類別應(yīng)用的設(shè)計(jì)參考
https://developer.android.google.cn/large-screens/gallery/social
https://developer.android.google.cn/large-screens/gallery/media
https://developer.android.google.cn/large-screens/gallery/productivity
https://developer.android.google.cn/large-screens/gallery/shopping
https://developer.android.google.cn/large-screens/gallery/reading
-
構(gòu)建多設(shè)備體驗(yàn)
https://developer.android.google.cn/multi-device-development
-
跨設(shè)備 SDK
https://developer.android.google.cn/guide/topics/connectivity/cross-device-sdk/overview
精簡(jiǎn)后臺(tái)工作
我們?cè)?Android 14 中繼續(xù)優(yōu)化應(yīng)用的協(xié)作方式,以改善系統(tǒng)健康狀況和電池壽命,并提升終端用戶體驗(yàn)。
針對(duì) JobScheduler 和前臺(tái)服務(wù)的更新和補(bǔ)充
有些后臺(tái)工作,比如僅使用 Wi-Fi 下載大型文件,其復(fù)雜度很高,這顯然是不必要的。我們正在為這些工作打造一個(gè)標(biāo)準(zhǔn)方案,以簡(jiǎn)化您的應(yīng)用開(kāi)發(fā)工作,進(jìn)而改善用戶體驗(yàn)。我們也在規(guī)范前臺(tái)服務(wù)的使用,只為面向用戶的最高優(yōu)先級(jí)任務(wù)保留這些服務(wù),以便改善 Android 的資源消耗和電池壽命。 Android 14 中對(duì)一些現(xiàn)有的 Android API(包括 Foreground Services 和 JobScheduler) 進(jìn)行了變更,加入了支持用戶發(fā)起的數(shù)據(jù)傳輸的新功能。我們還更新了聲明前臺(tái)服務(wù)類型的要求。用戶發(fā)起的數(shù)據(jù)傳輸作業(yè)將簡(jiǎn)化用戶發(fā)起的下載和上傳的管理,特別是傳輸存在限制的時(shí)候,比如僅使用 Wi-Fi 進(jìn)行下載。聲明前臺(tái)服務(wù)類型的要求可以讓開(kāi)發(fā)者清楚地定義應(yīng)用的后臺(tái)工作意圖,同時(shí)明確哪些使用場(chǎng)景適合前臺(tái)服務(wù)。此外,Google Play 將推出新政策,以確保開(kāi)發(fā)者合理使用上述 API,后續(xù)我們會(huì)公布這方面的更多信息。
-
Foreground Services
https://developer.android.google.cn/guide/components/foreground-services
-
JobScheduler
https://developer.android.google.cn/reference/android/app/job/JobScheduler
-
用戶發(fā)起的數(shù)據(jù)傳輸
https://developer.android.google.cn/about/versions/14/changes/user-initiated-data-transfers
-
聲明前臺(tái)服務(wù)類型
https://developer.android.google.cn/about/versions/14/changes/fgs-types-required
廣播優(yōu)化
我們對(duì)內(nèi)部廣播系統(tǒng)進(jìn)行了諸多優(yōu)化,以改善系統(tǒng)健康,加快反應(yīng)速度。雖然大多數(shù)優(yōu)化措施限于 Android 內(nèi)部,不會(huì)影響到您的應(yīng)用,但我們已經(jīng)調(diào)整了應(yīng)用進(jìn)入緩存狀態(tài)后接收上下文注冊(cè)的廣播的方式。所有發(fā)送給上下文注冊(cè)接收器的廣播都要排隊(duì),只有在應(yīng)用離開(kāi)緩存狀態(tài)后才會(huì)被傳遞給應(yīng)用。此外,一些重復(fù)的上下文注冊(cè)廣播,如 BATTERY_CHANGED,可能會(huì)被合并為一個(gè)最終廣播,并在應(yīng)用離開(kāi)緩存狀態(tài)時(shí)完成交付。
-
上下文注冊(cè)的接收器
https://developer.android.google.cn/guide/components/broadcasts#context-registered-receivers
-
緩存狀態(tài)
https://developer.android.google.cn/guide/components/activities/process-lifecycle
-
BATTERY_CHANGED
https://developer.android.google.cn/reference/android/content/Intent#ACTION_BATTERY_CHANGED
精確鬧鐘
調(diào)用精確鬧鐘會(huì)明顯消耗設(shè)備的資源,如電池壽命。因此在 Android 14 中,新安裝的以 Android 13+ (SDK 33+) 為目標(biāo)平臺(tái)的應(yīng)用,如果其并非時(shí)鐘或日歷應(yīng)用,必須在設(shè)置精確鬧鐘之前要求用戶授予 SCHEDULE_EXACT_ALARM 特殊權(quán)限。應(yīng)用可以通過(guò) Intent 將用戶引導(dǎo)至設(shè)置頁(yè)面進(jìn)行授權(quán)操作,但我們建議大家仔細(xì)評(píng)估應(yīng)用使用場(chǎng)景,盡可能選擇更加靈活的鬧鐘替代方案。
-
精確鬧鐘
https://developer.android.google.cn/training/scheduling/alarms#exact
-
SCHEDULE_EXACT_ALARM
https://developer.android.google.cn/reference/android/Manifest.permission#SCHEDULE_EXACT_ALARM
-
請(qǐng)求特殊權(quán)限
https://developer.android.google.cn/training/permissions/requesting-special
-
引導(dǎo)至設(shè)置頁(yè)面
https://developer.android.google.cn/training/permissions/requesting-special#request
-
更加靈活的鬧鐘替代方案
https://developer.android.google.cn/training/scheduling/alarms#use-cases
-
USE_EXACT_ALARM
https://developer.android.google.cn/reference/android/Manifest.permission#USE_EXACT_ALARM
-
Play 政策: 使用精確鬧鐘權(quán)限的可接受用例
https://support.google.com/googleplay/android-developer/answer/12253906#exact_alarm_preview
定制化
我們將繼續(xù)保障 Android 用戶圍繞其個(gè)人需求的定制化體驗(yàn),為此我們進(jìn)一步改進(jìn)了無(wú)障礙和國(guó)際化功能。更大的字體與非線性縮放 從 Android 14 開(kāi)始,用戶能夠把字體尺寸放大至 200%。此前,Pixel 設(shè)備上的字體最多能放大至 130%。 為了緩解文字過(guò)大帶來(lái)的問(wèn)題,從 Android 14 開(kāi)始,字體縮放曲線會(huì)是非線性的,且該縮放方案會(huì)直接啟用。這樣就可以確保已經(jīng)足夠大的文本的放大速度不會(huì)和較小的文本相同。
△ (左) 未放大(中) 線性放大至 200%
(右) 非線性放大至 200%
在 Android 14 中,開(kāi)發(fā)者需要使用最大的字體尺寸來(lái)測(cè)試應(yīng)用的界面。請(qǐng)前往無(wú)障礙 > 顯示大小和文字 (Accessibility > Display size and text) 頁(yè)面設(shè)置字體大小。請(qǐng)確保調(diào)整后的大字體設(shè)置能被反映在界面中,并且不會(huì)出現(xiàn)文字截?cái)嗟葐?wèn)題。我們的文檔提供了這方面的最佳實(shí)踐供大家參考:http://developer.android.google.cn/about/versions/14/features#non-linear-font-scaling
按應(yīng)用設(shè)定語(yǔ)言偏好 現(xiàn)在可以通過(guò) LocaleManager.setOverrideLocaleConfig 動(dòng)態(tài)更新應(yīng)用的 localeConfig,以定制 Android 設(shè)置頁(yè)面中每個(gè)應(yīng)用各自的語(yǔ)言列表中顯示的語(yǔ)言清單。這樣您就可以為每個(gè)地區(qū)定制語(yǔ)言列表,進(jìn)行 A/B 實(shí)驗(yàn),如果應(yīng)用使用服務(wù)器端推送本地化設(shè)置,則可以直接為應(yīng)用更新語(yǔ)言地區(qū)設(shè)置。
-
LocaleManager.setOverrideLocaleConfig
https://developer.android.google.cn/reference/android/app/LocaleManager?hl=en#setOverrideLocaleConfig(android.app.LocaleConfig)
IME 現(xiàn)在可以使用 LocaleManager.getApplicationLocales 來(lái)獲取當(dāng)前應(yīng)用的界面語(yǔ)言,從而同步更新鍵盤語(yǔ)言。
-
LocaleManager.getApplicationLocales
https://developer.android.google.cn/reference/android/app/LocaleManager#getApplicationLocales()
詞形變化 API 詞形變化 (Grammatical Infection) API 可以讓開(kāi)發(fā)者更輕松地為需要使用語(yǔ)法性別的用戶提供支持:https://developer.android.google.cn/about/versions/14/features#grammatical-inflection例如:
- 陽(yáng)性: "Vous êtes abonné à..."
- 陰性: "Vous êtes abonnée à…"
- 中性: "Abonnement à…activé"
語(yǔ)法性別是某些語(yǔ)言中特有的語(yǔ)法現(xiàn)象,而且在一些非英語(yǔ)語(yǔ)言中很難規(guī)避。這個(gè)新 API 可以讓開(kāi)發(fā)者更容易針對(duì)使用者性別 (這里指的是正在瀏覽界面的人,而不是正在被提及的人) 展示內(nèi)容。而如果在 ICU 中使用 SelectFormat,就只能基于每個(gè)字符串單獨(dú)進(jìn)行設(shè)置了。 開(kāi)發(fā)者只需為相應(yīng)的語(yǔ)言添加性別變位譯文,并使用這個(gè) API,即可為不同用戶展示定制化的譯文。
隱私和安全
運(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ì)信息:https://developer.android.google.cn/about/versions/14/behavior-changes-14#runtime-receivers-exported
-
Context.registerReceiver()
https://developer.android.google.cn/reference/android/content/Context#registerReceiver(android.content.BroadcastReceiver,%20android.content.IntentFilter,%20int)
更加安全的動(dòng)態(tài)代碼加載
動(dòng)態(tài)代碼加載 (Dynamic code loading, DCL) 為惡意軟件和漏洞提供了可能,因?yàn)閯?dòng)態(tài)下載的可執(zhí)行文件可能被意外修改,導(dǎo)致代碼注入問(wèn)題。以 Android 14 為目標(biāo)平臺(tái)的應(yīng)用動(dòng)態(tài)加載的文件需要標(biāo)記為只讀。請(qǐng)?jiān)L問(wèn)官方文檔了解詳細(xì)信息:https://developer.android.google.cn/about/versions/14/behavior-changes-14#safer-dynamic-code-loading
阻止應(yīng)用安裝
惡意軟件通常以較舊的 API 級(jí)別為目標(biāo),以繞過(guò)較新的 Android 版本中引入的安全和隱私保護(hù)措施。因此,從 Android 14 開(kāi)始,targetSdkVersion 低于 23 的應(yīng)用將無(wú)法安裝。之所以選擇這個(gè)特定的版本,是因?yàn)橐恍阂鈶?yīng)用使用 targetSdkVersion 22 來(lái)避免受到 2015 年 Android 6.0 (API 級(jí)別 23) 引入的運(yùn)行時(shí)權(quán)限模式的影響。
-
targetSdkVersion
https://developer.android.google.cn/guide/topics/manifest/uses-sdk-element
adb install --bypass-low-target-sdk-block FILENAME.apk
憑證管理器和 Passkey 支持 我們最近發(fā)布了憑證管理器 (Credential Manager) 的 Alpha 版本,這是一個(gè)新的 Jetpack API,用于簡(jiǎn)化用戶的認(rèn)證流程,同時(shí)也通過(guò)使用 Passkey 來(lái)提高安全性。Passkey 是一種代替密碼和其他易受攻擊的認(rèn)證方式的新方案,其安全性有顯著的提升。對(duì)用戶來(lái)說(shuō)也更方便,他們只需要在任何設(shè)備上進(jìn)行一次生物識(shí)別就可以安全地登錄。請(qǐng)閱讀官方博文了解詳細(xì)信息:
https://android-developers.googleblog.com/2023/02/bringing-together-sign-in-solutions-and-passkeys-android-new-credential-manager.html?m=1
-
讓用戶使用憑證管理器登錄
https://developer.android.google.cn/training/sign-in/passkeys
應(yīng)用兼容性
在發(fā)布新的平臺(tái)版本時(shí),我們會(huì)優(yōu)先考慮應(yīng)用的兼容性,以讓更新過(guò)程更快、更順暢。在 Android 14 中,大多數(shù)面向應(yīng)用的變更依然是可選的,這樣能為大家提供更多的時(shí)間進(jìn)行調(diào)整和適配。我們還更新了工具和流程,幫助大家更快地做好準(zhǔn)備。 OpenJDK 17 支持 - 預(yù)覽版已支持 300 個(gè) OpenJDK 17 類。我們正在努力為后續(xù)的開(kāi)發(fā)者預(yù)覽版帶來(lái)完整的 Java 17 語(yǔ)言功能。這些功能包括記錄類、多行字符串和 instanceof 模式匹配。通過(guò) Google Play 系統(tǒng)更新 (Project Mainline),超過(guò) 6 億臺(tái)設(shè)備能夠獲得最新的 Android Runtime (ART) 更新,包括對(duì) OpenJDK 17 的支持。這也是我們的承諾之一,即為應(yīng)用提供跨設(shè)備、更加一致、更加安全的環(huán)境,并且在平臺(tái)版本更新之外持續(xù)為用戶帶來(lái)新特性和新功能。
-
Google Play 系統(tǒng)更新
https://android-developers.googleblog.com/2019/05/fresher-os-with-projects-treble-and-mainline.html
△ 開(kāi)發(fā)者選項(xiàng)中的應(yīng)用兼容性開(kāi)關(guān)平臺(tái)穩(wěn)定性里程碑 - 和去年一樣,我們會(huì)提前向您告知平臺(tái)穩(wěn)定性里程碑,讓您有更多的時(shí)間來(lái)規(guī)劃應(yīng)用兼容性工作。在抵達(dá)這個(gè)里程碑時(shí),我們不僅會(huì)交付最終版 SDK/NDK API,還會(huì)鎖定最終版的內(nèi)部 API 和面向應(yīng)用的系統(tǒng)行為。我們預(yù)計(jì)將在 2023 年 6 月抵達(dá)平臺(tái)穩(wěn)定里程碑,這樣在正式版本發(fā)布之前,您還會(huì)有幾周的時(shí)間進(jìn)行最終測(cè)試。發(fā)布時(shí)間表詳見(jiàn):https://developer.android.google.cn/about/versions/14/overview
即刻開(kāi)始體驗(yàn) Android 14
不論您是想體驗(yàn) Android 14 的功能、測(cè)試應(yīng)用還是提交反饋,都可以從這次的開(kāi)發(fā)者預(yù)覽版開(kāi)始。如果您想要測(cè)試應(yīng)用在平板電腦和可折疊設(shè)備上的兼容性,最簡(jiǎn)單的方法是使用 Android Studio SDK 管理器最新預(yù)覽版中 Android 模擬器的平板電腦或可折疊設(shè)備配置進(jìn)行測(cè)試。對(duì)于手機(jī),只需將系統(tǒng)映像下載并刷入 Pixel 7 Pro / 7 / 6a / 6 Pro / 6 / 5a 5G / 5 / 4a (5G) 設(shè)備,即可立即開(kāi)始使用。如果您沒(méi)有 Pixel 設(shè)備,則可以在 Android Studio 中使用帶有 64 位系統(tǒng)映像的 Android 模擬器。
-
反饋與需求
https://developer.android.google.cn/about/versions/14/feedback
-
安裝 SDK
https://developer.android.google.cn/about/versions/14/setup-sdk#install-sdk
-
獲取系統(tǒng)映像
https://developer.android.google.cn/about/versions/14/download
為了獲得最佳的 Android 14 開(kāi)發(fā)體驗(yàn),我們建議您使用 Android Studio Giraffe 的最新預(yù)覽版或更高版本。
-
Android Studio Giraffe
https://developer.android.google.cn/studio/preview
設(shè)置好 SDK 后,您可以:
-
體驗(yàn)新功能和 API - 在開(kāi)發(fā)者預(yù)覽版的早期階段,您的反饋至關(guān)重要。您可以在我們的跟蹤頁(yè)報(bào)告問(wèn)題:
https://developer.android.google.cn/about/versions/14/feedback
-
測(cè)試應(yīng)用的兼容性 - 測(cè)試您的應(yīng)用是否受到 Android 14 默認(rèn)行為變更的影響。請(qǐng)將應(yīng)用安裝到運(yùn)行 Android 14 的設(shè)備或模擬器上進(jìn)行徹底的測(cè)試。
-
使用可選變更項(xiàng)測(cè)試應(yīng)用 - Android 14 提供了可選的行為變更,這些變更僅在您的應(yīng)用以新平臺(tái)為目標(biāo)時(shí)才會(huì)造成影響。盡早了解和評(píng)估這些變更十分重要。為了便于測(cè)試,您可以單獨(dú)啟用或者禁用這些變更:
https://developer.android.google.cn/about/versions/14/reference/compat-framework-changes
-
設(shè)置 Android 14 SDK
https://developer.android.google.cn/about/versions/14/setup-sdk
https://developer.android.google.cn/about/versions/14/get
如果您打算從 Android 13 QPR Beta 版轉(zhuǎn)移到 Android 14 開(kāi)發(fā)者預(yù)覽版,并且不想擦除您的設(shè)備,我們建議您現(xiàn)在就安裝本次的開(kāi)發(fā)者預(yù)覽版 1,否則之后 Android 13 Beta 版可能發(fā)布構(gòu)建日期更新的版本,屆時(shí)您就無(wú)法在不擦除數(shù)據(jù)的情況下直接安裝 Android 14 開(kāi)發(fā)者預(yù)覽版了。
-
Android 13 QPR Beta 版
https://developer.android.google.cn/about/versions/13/get-qpr
* Java 和 OpenJDK 是 Oracle 和/或其附屬公司的商標(biāo)或注冊(cè)商標(biāo)。
?點(diǎn)擊屏末|閱讀原文|進(jìn)一步了解 Android 14 詳細(xì)更新
原文標(biāo)題:Android 14 首個(gè)開(kāi)發(fā)者預(yù)覽版到來(lái)
文章出處:【微信公眾號(hào):谷歌開(kāi)發(fā)者】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
-
谷歌
+關(guān)注
關(guān)注
27文章
6177瀏覽量
105683
原文標(biāo)題:Android 14 首個(gè)開(kāi)發(fā)者預(yù)覽版到來(lái)
文章出處:【微信號(hào):Google_Developers,微信公眾號(hào):谷歌開(kāi)發(fā)者】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論