隨著今天 Android 14 Beta 3 的發(fā)布,我們隨之進(jìn)入到 Android 開(kāi)發(fā)周期的下一個(gè)階段。Beta 3 依舊圍繞著我們的核心主題打造,即隱私、安全、性能、開(kāi)發(fā)者生產(chǎn)力和用戶(hù)定制,同時(shí)繼續(xù)完善平板電腦、可折疊設(shè)備等大屏設(shè)備上的體驗(yàn)。
?Beta 3 也讓 Android 14 抵達(dá)平臺(tái)穩(wěn)定性里程碑,這意味著開(kāi)發(fā)者 API 和所有面向應(yīng)用的行為都已最終確定,供大家評(píng)估和整合進(jìn)自己的應(yīng)用。感謝大家這一路上向我們分享的寶貴意見(jiàn)和反饋,是大家?guī)椭覀冺樌诌_(dá)這一里程碑。
-
平臺(tái)穩(wěn)定性里程碑
https://developer.android.google.cn/about/versions/14/overview#platform_stability
-
非線(xiàn)性字體放大
https://developer.android.google.cn/about/versions/14/features#non-linear-font-scaling
-
授予對(duì)照片和視頻的部分訪(fǎng)問(wèn)權(quán)限
https://developer.android.google.cn/about/versions/14/changes/partial-photo-video-access
-
支持內(nèi)置和定制預(yù)測(cè)性返回動(dòng)畫(huà)
https://developer.android.google.cn/about/versions/14/features/predictive-back
-
OpenJDK 17 更新
https://developer.android.google.cn/about/versions/14/features#core
平臺(tái)穩(wěn)定性里程碑
隨著 Beta 3 和平臺(tái)穩(wěn)定性里程碑的到來(lái),您可以放心地開(kāi)發(fā)和發(fā)布必要的兼容性更新。請(qǐng)即刻開(kāi)始進(jìn)行最終兼容性測(cè)試,并準(zhǔn)備發(fā)布必要的更新,從而在剩下的 Beta 測(cè)試期內(nèi)獲得寶貴的反饋。這些工作都有助于您在今年晚些時(shí)候 Android 14 正式發(fā)布之前就打造出流暢的應(yīng)用體驗(yàn)。
-
平臺(tái)穩(wěn)定性里程碑
https://developer.android.google.cn/about/versions/14/overview#platform_stability
應(yīng)用兼容性
隨著 Android 每個(gè)版本的發(fā)布,我們都會(huì)對(duì)平臺(tái)進(jìn)行整體的改進(jìn),以強(qiáng)化隱私和安全,并優(yōu)化整個(gè)操作系統(tǒng)的用戶(hù)體驗(yàn)。這些都可能會(huì)影響到您的應(yīng)用。要測(cè)試應(yīng)用的兼容性,只需在運(yùn)行 Android 14 Beta 3 的設(shè)備上,通過(guò) Google Play 或其他來(lái)源安裝您的正式版應(yīng)用即可。請(qǐng)測(cè)試應(yīng)用的所有流程,找出功能或用戶(hù)界面中暴露的問(wèn)題。請(qǐng)通過(guò)行為變更清單 (針對(duì)所有應(yīng)用) 來(lái)確定測(cè)試重點(diǎn):https://developer.android.google.cn/about/versions/14/behavior-changes-all 這里列出一些需要注意的變更:
非線(xiàn)性字體放大
從 Android 14 開(kāi)始,系統(tǒng)默認(rèn)支持字體放大至 200%。這項(xiàng)變更為弱視用戶(hù)提供了符合網(wǎng)絡(luò)內(nèi)容無(wú)障礙指南 (WCAG) 的更豐富的無(wú)障礙功能選項(xiàng)。請(qǐng)?jiān)趩⒂米畲笪淖殖叽?(200%) 的條件下進(jìn)行用戶(hù)界面測(cè)試,以確保您的應(yīng)用能適應(yīng)更大的文字尺寸且不影響可用性。為了更好地適配此功能,也請(qǐng)確保您在 Configuration 或 DisplayMetrics 中沒(méi)有硬編碼計(jì)算 sp,以及通過(guò) TypedValue 的 applyDimension() 和 deriveDimension() 在 sp 和 px 之間進(jìn)行轉(zhuǎn)換。
-
非線(xiàn)性字體放大
https://developer.android.google.cn/about/versions/14/behavior-changes-all#non-linear-font-scaling
-
網(wǎng)絡(luò)內(nèi)容無(wú)障礙指南 (WCAG)
https://www.w3.org/TR/UNDERSTANDING-WCAG20/visual-audio-contrast-scale.html
-
使用非線(xiàn)性字體放大測(cè)試應(yīng)用
https://developer.android.google.cn/about/versions/14/features#test-scaling
-
Configuration
https://developer.android.google.cn/reference/android/content/res/Configuration
-
DisplayMetrics
https://developer.android.google.cn/reference/android/util/DisplayMetrics
-
TypedValue
https://developer.android.google.cn/reference/android/util/TypedValue
-
applyDimension()
https://developer.android.google.cn/reference/android/util/TypedValue#applyDimension(int,%20float,%20android.util.DisplayMetrics)
-
deriveDimension()
https://developer.android.google.cn/reference/android/util/TypedValue#deriveDimension(int,%20float,%20android.util.DisplayMetrics)
對(duì)照片和視頻授予部分訪(fǎng)問(wèn)權(quán)限
當(dāng)您的應(yīng)用請(qǐng)求任意視覺(jué)媒體權(quán)限 (READ_MEDIA_IMAGES 或 READ_MEDIA_VIDEO,于 Android 13,API 33 中引入) 時(shí),用戶(hù)可以?xún)H授予對(duì)媒體庫(kù)的部分訪(fǎng)問(wèn)權(quán)限。當(dāng)您的應(yīng)用切換至后臺(tái),或當(dāng)用戶(hù)主動(dòng)殺掉您的應(yīng)用時(shí),系統(tǒng)會(huì)將這些部分訪(fǎng)問(wèn)權(quán)限做為單次授權(quán)處理,繼而最終關(guān)閉這些權(quán)限。如果您的應(yīng)用有遵守此類(lèi)授權(quán)的最佳實(shí)踐,此項(xiàng)變更不會(huì)造成影響。Android 14 引入了 READ_MEDIA_VISUAL_USER_SELECTED 權(quán)限來(lái)幫助應(yīng)用更好地支持這些變更。我們建議您考慮使用照片選擇器來(lái)為用戶(hù)提供安全的方式讓?xiě)?yīng)用指定訪(fǎng)問(wèn)某些照片和視頻,這樣無(wú)需申請(qǐng)權(quán)限,體驗(yàn)也更流暢。
-
READ_MEDIA_IMAGES
https://developer.android.google.cn/reference/android/Manifest.permission#READ_MEDIA_IMAGES
-
READ_MEDIA_VIDEO
https://developer.android.google.cn/reference/android/Manifest.permission#READ_MEDIA_VIDEO
-
對(duì)照片和視頻授予部分訪(fǎng)問(wèn)權(quán)限
https://developer.android.google.cn/about/versions/14/changes/partial-photo-video-access
-
最佳實(shí)踐
https://developer.android.google.cn/about/versions/14/changes/partial-photo-video-access#best-practices
-
READ_MEDIA_VISUAL_USER_SELECTED
https://developer.android.google.cn/reference/android/Manifest.permission#READ_MEDIA_VISUAL_USER_SELECTED
-
照片選擇器
https://developer.android.google.cn/training/data-storage/shared/photopicker
數(shù)據(jù)安全信息更加凸顯
為了更好地保護(hù)用戶(hù)隱私,Android 14 在系統(tǒng)中增加了一些位置來(lái)展示您在 Play 管理中心的表單中聲明的信息。對(duì)于某些權(quán)限,我們?cè)谙到y(tǒng)運(yùn)行時(shí)權(quán)限對(duì)話(huà)框中加入了一個(gè)可點(diǎn)擊的部分,用來(lái)進(jìn)一步展示應(yīng)用的數(shù)據(jù)共享情況。系統(tǒng)對(duì)話(huà)框的這一部分會(huì)展示諸如為什么您的應(yīng)用需要和第三方共享數(shù)據(jù)等信息,以及為用戶(hù)提供跳轉(zhuǎn)鏈接,用來(lái)管理您應(yīng)用的數(shù)據(jù)訪(fǎng)問(wèn)設(shè)置。我們建議您審查自己應(yīng)用的位置數(shù)據(jù)共享政策,并相應(yīng)地更新應(yīng)用在 Google Play 數(shù)據(jù)安全部分中聲明的信息。
-
更加凸顯數(shù)據(jù)安全信息
https://developer.android.google.cn/about/versions/14/changes/data-safety
-
為 Google Play 的數(shù)據(jù)安全部分提供信息
https://support.google.com/googleplay/android-developer/answer/10787469
請(qǐng)通過(guò)行為變更清單了解所有可能會(huì)影響您的應(yīng)用或游戲兼容性的變更。如果您發(fā)現(xiàn)應(yīng)用的開(kāi)發(fā)庫(kù)或 SDK 存在兼容性問(wèn)題,請(qǐng)更新它們至最新版本,或聯(lián)系其開(kāi)發(fā)者尋求幫助。
-
行為變更 (所有應(yīng)用)
https://developer.android.google.cn/about/versions/14/behavior-changes-all
一旦您發(fā)布了當(dāng)前應(yīng)用的兼容版本,就可以開(kāi)始更新應(yīng)用的 targetSdkVersion。請(qǐng)查閱行為變更清單 (針對(duì)以Android 14 為目標(biāo)平臺(tái)的應(yīng)用) 并使用兼容性框架工具來(lái)快速檢測(cè)問(wèn)題。
-
更新應(yīng)用的目標(biāo)平臺(tái)并使用新 API 進(jìn)行構(gòu)建
https://developer.android.google.cn/preview/migration#setup_sdk
-
符合 Google Play 的目標(biāo) API 級(jí)別要求
https://developer.android.google.cn/distribute/best-practices/develop/target-sdk
-
行為變更 (以 Android 14 或更高版本為目標(biāo)平臺(tái)的應(yīng)用)
https://developer.android.google.cn/about/versions/14/behavior-changes-14
-
兼容性框架工具
https://developer.android.google.cn/guide/app-compatibility/test-debug
下面列出一些需要注意的變更 (適用于 targetSdkVersion 為 API 34 或更高的應(yīng)用):
必須提供前臺(tái)服務(wù)類(lèi)型
如果您的應(yīng)用以 Android 14 為目標(biāo)平臺(tái),則您必須為應(yīng)用中的每個(gè)前臺(tái)服務(wù)指定至少一個(gè)前臺(tái)服務(wù)類(lèi)型。請(qǐng)務(wù)必選擇能代表應(yīng)用實(shí)際用例的前臺(tái)服務(wù)類(lèi)型。系統(tǒng)會(huì)檢查您是否選擇了正確的前臺(tái)服務(wù)類(lèi)型,以及應(yīng)用是否正確請(qǐng)求運(yùn)行時(shí)權(quán)限或使用所需的 API。比如,如果應(yīng)用的前臺(tái)服務(wù)類(lèi)型是 FOREGROUND_SERVICE_TYPE_LOCATION,則系統(tǒng)會(huì)認(rèn)為其需要申請(qǐng) ACCESS_COARSE_LOCATION 或 ACCESS_FINE_LOCATION 權(quán)限。Android 14 為健康和遠(yuǎn)程消息傳遞場(chǎng)景新增了對(duì)應(yīng)的前臺(tái)服務(wù)類(lèi)型,而且也為短期服務(wù)、特殊用途和系統(tǒng)豁免保留了新的類(lèi)型。如果您應(yīng)用中的某個(gè)場(chǎng)景和這些類(lèi)型都不匹配,我們強(qiáng)烈建議您將這部分邏輯遷移至使用 WorkManager 或用戶(hù)發(fā)起的數(shù)據(jù)傳輸作業(yè)。
-
前臺(tái)服務(wù)
https://developer.android.google.cn/guide/components/foreground-services
-
前臺(tái)服務(wù)類(lèi)型是必填項(xiàng)
https://developer.android.google.cn/about/versions/14/changes/fgs-types-required
-
FOREGROUND_SERVICE_TYPE_LOCATION
https://developer.android.google.cn/reference/android/content/pm/ServiceInfo#FOREGROUND_SERVICE_TYPE_LOCATION
-
ACCESS_COARSE_LOCATION
https://developer.android.google.cn/reference/android/Manifest.permission#ACCESS_COARSE_LOCATION
-
ACCESS_FINE_LOCATION
https://developer.android.google.cn/reference/android/Manifest.permission#ACCESS_FINE_LOCATION
-
健康
https://developer.android.google.cn/about/versions/14/changes/fgs-types-required#health
-
遠(yuǎn)程消息傳遞
https://developer.android.google.cn/about/versions/14/changes/fgs-types-required#remote-messaging
-
短期服務(wù)
https://developer.android.google.cn/about/versions/14/changes/fgs-types-required#short-service
-
特殊用途
https://developer.android.google.cn/about/versions/14/changes/fgs-types-required#special-use
-
系統(tǒng)豁免
https://developer.android.google.cn/about/versions/14/changes/fgs-types-required#system-exempted
-
使用 WorkManager 調(diào)度任務(wù)
https://developer.android.google.cn/topic/libraries/architecture/workmanager
-
用戶(hù)發(fā)起的數(shù)據(jù)傳輸作業(yè)
https://developer.android.google.cn/about/versions/14/changes/user-initiated-data-transfers
OpenJDK 17 更新
Android 14 的一些變更旨在讓核心庫(kù)與最新的 OpenJDK LTS 版本功能對(duì)齊,這些變更可能會(huì)影響到您應(yīng)用的兼容性,包括正則表達(dá)式、UUID 處理、涉及到 ProGuard 的問(wèn)題,以及增加的 java.lang.ClassValue。
-
OpenJDK 17 更新
https://developer.android.google.cn/about/versions/14/behavior-changes-14#core-libraries
-
java.lang.ClassValue
https://developer.android.google.cn/reference/java/lang/ClassValue
安全變更
以 Android 14 為目標(biāo)平臺(tái)的應(yīng)用不能再向內(nèi)部組件發(fā)送特定的隱式 Intent。運(yùn)行時(shí)注冊(cè)的廣播接收器必須指定導(dǎo)出行為,除非它們只接收系統(tǒng)廣播。動(dòng)態(tài)加載的代碼文件必須被標(biāo)記為只讀。如果 zip 文件名包含 ".."或以 "/"開(kāi)頭,則 ZipFile(String) 和 ZipInputStream.getNextEntry() 會(huì)拋出 ZipException 異常,以避免觸發(fā)壓縮路徑遍歷漏洞。從后臺(tái)啟動(dòng) Activity 現(xiàn)在有了額外的限制,對(duì)調(diào)用非 SDK 接口也有了更新的限制。
-
安全變更
https://developer.android.google.cn/about/versions/14/behavior-changes-14#security
-
對(duì)隱式 intent 和待處理 intent 的限制
https://developer.android.google.cn/about/versions/14/behavior-changes-14#safer-intents
-
在運(yùn)行時(shí)注冊(cè)的廣播接收器必須指定導(dǎo)出行為
https://developer.android.google.cn/about/versions/14/behavior-changes-14#runtime-receivers-exported
-
僅接收系統(tǒng)廣播的接收器的例外情況
https://developer.android.google.cn/about/versions/14/behavior-changes-14#system-broadcasts
-
更安全的動(dòng)態(tài)代碼加載
https://developer.android.google.cn/about/versions/14/behavior-changes-14#safer-dynamic-code-loading
-
ZipFile(String)
https://developer.android.google.cn/reference/java/util/zip/ZipFile#public-constructors
-
ZipInputStream.getNextEntry()
https://developer.android.google.cn/reference/java/util/zip/ZipInputStream#getNextEntry%28%29
-
ZipException
https://developer.android.google.cn/reference/java/util/zip/ZipException
-
壓縮路徑遍歷
https://developer.android.google.cn/about/versions/14/behavior-changes-14#zip-path-traversal
-
針對(duì)從后臺(tái)啟動(dòng) Activity 的其他限制
https://developer.android.google.cn/about/versions/14/behavior-changes-14#background-activity-restrictions
-
更新后的非 SDK 限制
https://developer.android.google.cn/about/versions/14/behavior-changes-14#non-sdk-restrictions
即刻體驗(yàn) Android 14
不論您是想體驗(yàn) Android 14 的功能、測(cè)試應(yīng)用還是提交反饋,都可以從這次的 Beta 3 開(kāi)始。您還可以使用我們合作伙伴的設(shè)備來(lái)測(cè)試應(yīng)用在平板電腦和可折疊設(shè)備上的表現(xiàn),不過(guò)最簡(jiǎn)單的方法還是使用 Android Studio SDK 管理器最新預(yù)覽版中安裝了 64 位系統(tǒng)映像的 Android 模擬器中的 Pixel Tablet 或 Pixel Fold 配置進(jìn)行測(cè)試。您還可以直接使用支持的 Pixel 設(shè)備 (包括最新的 Pixel 7a) 參與測(cè)試,并通過(guò) OTA 方式獲得本次以及將來(lái)的 Android 14 Beta 版 (包括功能更新)。
-
反饋與需求
https://developer.android.google.cn/about/versions/14/feedback
-
安裝 SDK
https://developer.android.google.cn/about/versions/14/setup-sdk#install-sdk
-
參與 Beta 版測(cè)試
https://www.google.com/android/beta
為了獲得最佳的 Android 14 開(kāi)發(fā)體驗(yàn),我們建議您使用 Android Studio Hedgehog 的最新版本。
-
Android Studio Hedgehog
https://developer.android.google.cn/studio/preview
- 體驗(yàn)新功能和 API - 歡迎大家繼續(xù)在我們的跟蹤頁(yè)報(bào)告問(wèn)題。
- 測(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ú)啟用或者禁用這些變更。
-
設(shè)置 Android 14 SDK
https://developer.android.google.cn/about/versions/14/setup-sdk
-
兼容性框架變更 (Android 14)
https://developer.android.google.cn/about/versions/14/reference/compat-framework-changes
https://www.google.com/android/beta
請(qǐng)?jiān)L問(wèn) Android 14 開(kāi)發(fā)者網(wǎng)站了解如何獲取 Beta 版等詳細(xì)信息:https://developer.android.google.cn/about/versions/14
* Java 和 OpenJDK 是 Oracle 和/或其附屬公司的商標(biāo)或注冊(cè)商標(biāo)。
?點(diǎn)擊屏末|閱讀原文|進(jìn)一步了解 Android 14 詳細(xì)更新
原文標(biāo)題:平臺(tái)穩(wěn)定性里程碑 | Android 14 Beta 3 發(fā)布
文章出處:【微信公眾號(hào):谷歌開(kāi)發(fā)者】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
-
谷歌
+關(guān)注
關(guān)注
27文章
6128瀏覽量
104948
原文標(biāo)題:平臺(tái)穩(wěn)定性里程碑 | Android 14 Beta 3 發(fā)布
文章出處:【微信號(hào):Google_Developers,微信公眾號(hào):谷歌開(kāi)發(fā)者】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論