随着今天 Android 14 Beta 3 的发布,我们随之进入到 Android 开发周期的下一个阶段。Beta 3 依旧围绕着我们的核心主题打造,即隐私、安全、性能、开发者生产力和用户定制,同时继续完善平板电脑、可折叠设备等大屏设备上的体验。
Beta 3 也让 Android 14 抵达平台稳定性里程碑,这意味着开发者 API 和所有面向应用的行为都已最终确定,供大家评估和整合进自己的应用。感谢大家这一路上向我们分享的宝贵意见和反馈,是大家帮助我们顺利抵达这一里程碑。
平台稳定性里程碑
https://developer.android.google.cn/about/versions/14/overview#platform_stability
非线性字体放大
https://developer.android.google.cn/about/versions/14/features#non-linear-font-scaling
授予对照片和视频的部分访问权限
https://developer.android.google.cn/about/versions/14/changes/partial-photo-video-access
支持内置和定制预测性返回动画
https://developer.android.google.cn/about/versions/14/features/predictive-back
OpenJDK 17 更新
https://developer.android.google.cn/about/versions/14/features#core
平台稳定性里程碑
随着 Beta 3 和平台稳定性里程碑的到来,您可以放心地开发和发布必要的兼容性更新。请即刻开始进行最终兼容性测试,并准备发布必要的更新,从而在剩下的 Beta 测试期内获得宝贵的反馈。这些工作都有助于您在今年晚些时候 Android 14 正式发布之前就打造出流畅的应用体验。
平台稳定性里程碑
https://developer.android.google.cn/about/versions/14/overview#platform_stability
应用兼容性
随着 Android 每个版本的发布,我们都会对平台进行整体的改进,以强化隐私和安全,并优化整个操作系统的用户体验。这些都可能会影响到您的应用。要测试应用的兼容性,只需在运行 Android 14 Beta 3 的设备上,通过 Google Play 或其他来源安装您的正式版应用即可。请测试应用的所有流程,找出功能或用户界面中暴露的问题。请通过行为变更清单 (针对所有应用) 来确定测试重点:https://developer.android.google.cn/about/versions/14/behavior-changes-all 这里列出一些需要注意的变更:
非线性字体放大
从 Android 14 开始,系统默认支持字体放大至 200%。这项变更为弱视用户提供了符合网络内容无障碍指南 (WCAG) 的更丰富的无障碍功能选项。请在启用最大文字尺寸 (200%) 的条件下进行用户界面测试,以确保您的应用能适应更大的文字尺寸且不影响可用性。为了更好地适配此功能,也请确保您在 Configuration 或 DisplayMetrics 中没有硬编码计算 sp,以及通过 TypedValue 的 applyDimension() 和 deriveDimension() 在 sp 和 px 之间进行转换。
非线性字体放大
https://developer.android.google.cn/about/versions/14/behavior-changes-all#non-linear-font-scaling
网络内容无障碍指南 (WCAG)
https://www.w3.org/TR/UNDERSTANDING-WCAG20/visual-audio-contrast-scale.html
使用非线性字体放大测试应用
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)
对照片和视频授予部分访问权限
当您的应用请求任意视觉媒体权限 (READ_MEDIA_IMAGES 或 READ_MEDIA_VIDEO,于 Android 13,API 33 中引入) 时,用户可以仅授予对媒体库的部分访问权限。当您的应用切换至后台,或当用户主动杀掉您的应用时,系统会将这些部分访问权限做为单次授权处理,继而最终关闭这些权限。如果您的应用有遵守此类授权的最佳实践,此项变更不会造成影响。Android 14 引入了 READ_MEDIA_VISUAL_USER_SELECTED 权限来帮助应用更好地支持这些变更。我们建议您考虑使用照片选择器来为用户提供安全的方式让应用指定访问某些照片和视频,这样无需申请权限,体验也更流畅。
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
对照片和视频授予部分访问权限
https://developer.android.google.cn/about/versions/14/changes/partial-photo-video-access
最佳实践
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
数据安全信息更加凸显
为了更好地保护用户隐私,Android 14 在系统中增加了一些位置来展示您在 Play 管理中心的表单中声明的信息。对于某些权限,我们在系统运行时权限对话框中加入了一个可点击的部分,用来进一步展示应用的数据共享情况。系统对话框的这一部分会展示诸如为什么您的应用需要和第三方共享数据等信息,以及为用户提供跳转链接,用来管理您应用的数据访问设置。我们建议您审查自己应用的位置数据共享政策,并相应地更新应用在 Google Play 数据安全部分中声明的信息。
更加凸显数据安全信息
https://developer.android.google.cn/about/versions/14/changes/data-safety
为 Google Play 的数据安全部分提供信息
https://support.google.com/googleplay/android-developer/answer/10787469
请通过行为变更清单了解所有可能会影响您的应用或游戏兼容性的变更。如果您发现应用的开发库或 SDK 存在兼容性问题,请更新它们至最新版本,或联系其开发者寻求帮助。
行为变更 (所有应用)
https://developer.android.google.cn/about/versions/14/behavior-changes-all
一旦您发布了当前应用的兼容版本,就可以开始更新应用的 targetSdkVersion。请查阅行为变更清单 (针对以 Android 14 为目标平台的应用) 并使用兼容性框架工具来快速检测问题。
更新应用的目标平台并使用新 API 进行构建
https://developer.android.google.cn/preview/migration#setup_sdk
符合 Google Play 的目标 API 级别要求
https://developer.android.google.cn/distribute/best-practices/develop/target-sdk
行为变更 (以 Android 14 或更高版本为目标平台的应用)
https://developer.android.google.cn/about/versions/14/behavior-changes-14
兼容性框架工具
https://developer.android.google.cn/guide/app-compatibility/test-debug
下面列出一些需要注意的变更 (适用于 targetSdkVersion 为 API 34 或更高的应用):
必须提供前台服务类型
如果您的应用以 Android 14 为目标平台,则您必须为应用中的每个前台服务指定至少一个前台服务类型。请务必选择能代表应用实际用例的前台服务类型。系统会检查您是否选择了正确的前台服务类型,以及应用是否正确请求运行时权限或使用所需的 API。比如,如果应用的前台服务类型是 FOREGROUND_SERVICE_TYPE_LOCATION,则系统会认为其需要申请 ACCESS_COARSE_LOCATION 或 ACCESS_FINE_LOCATION 权限。Android 14 为健康和远程消息传递场景新增了对应的前台服务类型,而且也为短期服务、特殊用途和系统豁免保留了新的类型。如果您应用中的某个场景和这些类型都不匹配,我们强烈建议您将这部分逻辑迁移至使用 WorkManager 或用户发起的数据传输作业。
前台服务
https://developer.android.google.cn/guide/components/foreground-services
前台服务类型是必填项
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
远程消息传递
https://developer.android.google.cn/about/versions/14/changes/fgs-types-required#remote-messaging
短期服务
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
系统豁免
https://developer.android.google.cn/about/versions/14/changes/fgs-types-required#system-exempted
使用 WorkManager 调度任务
https://developer.android.google.cn/topic/libraries/architecture/workmanager
用户发起的数据传输作业
https://developer.android.google.cn/about/versions/14/changes/user-initiated-data-transfers
OpenJDK 17 更新
Android 14 的一些变更旨在让核心库与最新的 OpenJDK LTS 版本功能对齐,这些变更可能会影响到您应用的兼容性,包括正则表达式、UUID 处理、涉及到 ProGuard 的问题,以及增加的 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 为目标平台的应用不能再向内部组件发送特定的隐式 Intent。运行时注册的广播接收器必须指定导出行为,除非它们只接收系统广播。动态加载的代码文件必须被标记为只读。如果 zip 文件名包含 ".." 或以 "/" 开头,则 ZipFile(String) 和 ZipInputStream.getNextEntry() 会抛出 ZipException 异常,以避免触发压缩路径遍历漏洞。从后台启动 Activity 现在有了额外的限制,对调用非 SDK 接口也有了更新的限制。
安全变更
https://developer.android.google.cn/about/versions/14/behavior-changes-14#security
对隐式 intent 和待处理 intent 的限制
https://developer.android.google.cn/about/versions/14/behavior-changes-14#safer-intents
在运行时注册的广播接收器必须指定导出行为
https://developer.android.google.cn/about/versions/14/behavior-changes-14#runtime-receivers-exported
仅接收系统广播的接收器的例外情况
https://developer.android.google.cn/about/versions/14/behavior-changes-14#system-broadcasts
更安全的动态代码加载
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
针对从后台启动 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
即刻体验 Android 14
不论您是想体验 Android 14 的功能、测试应用还是提交反馈,都可以从这次的 Beta 3 开始。您还可以使用我们合作伙伴的设备来测试应用在平板电脑和可折叠设备上的表现,不过最简单的方法还是使用 Android Studio SDK 管理器最新预览版中安装了 64 位系统映像的 Android 模拟器中的 Pixel Tablet 或 Pixel Fold 配置进行测试。您还可以直接使用支持的 Pixel 设备 (包括最新的 Pixel 7a) 参与测试,并通过 OTA 方式获得本次以及将来的 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 版测试
https://www.google.com/android/beta
为了获得最佳的 Android 14 开发体验,我们建议您使用 Android Studio Hedgehog 的最新版本。
Android Studio Hedgehog
https://developer.android.google.cn/studio/preview
设置 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
请访问 Android 14 开发者网站了解如何获取 Beta 版等详细信息:https://developer.android.google.cn/about/versions/14
* Java 和 OpenJDK 是 Oracle 和/或其附属公司的商标或注册商标。
点击屏末 | 阅读原文 | 进一步了解 Android 14 详细更新
原文标题:平台稳定性里程碑 | Android 14 Beta 3 发布
文章出处:【微信公众号:谷歌开发者】欢迎添加关注!文章转载请注明出处。
全部0条评论
快来发表一下你的评论吧 !