作者 / Dave Burke, VP of Engineering
今天,我们为大家带来了 Android 14 的第二个开发者预览版。在上个月发布的 Android 14 首个开发者预览版的基础上,我们进一步增强了隐私、安全、性能、开发者生产力和用户定制功能,同时继续完善平板电脑、可折叠设备等大屏设备上的体验。
每一年 Android 都会带来改进和新的功能,在这一路的进化过程中,大家在 Android 14 开发者预览版和季度平台发布 (Quarterly Platform Release, QPR) Beta 版测试计划中提交的反馈至关重要。我们在 Android 14 开发者网站提供了很多关于本次预览版的信息,包括 Pixel 系统映像的下载和发布时间表。非常期待听到大家的想法,在这里我们提前感谢大家,是大家的持续支持,让 Android 能成为属于每一个人的平台!
https://developer.android.google.cn/about/versions/14/gethttps://developer.android.google.cn/about/versions/13/get-qprhttps://developer.android.google.cn/about/versions/14https://developer.android.google.cn/about/versions/14/downloadhttps://developer.android.google.cn/about/versions/14/overview#timelinehttps://developer.android.google.cn/about/versions/14/feedback
跨设备以及多尺寸屏幕的支持
Android 14 在 Android 12L 和 13 的基础上,继续对平板电脑和可折叠设备带来良好的支持。您可以从 "大屏幕使用入门" 和 "为可折叠设备构建应用" 开始,快速了解如何让您的应用做好准备,我们也在大屏设备应用质量指南中提供了详细的检查清单。我们最近也发布了新的开发库来支持低延迟手写笔和运动预测等功能。
https://developer.android.google.cn/guide/topics/large-screens/get-started-with-large-screenshttps://developer.android.google.cn/guide/topics/ui/foldableshttps://developer.android.google.cn/docs/quality-guidelines/tablet-app-qualityhttps://developer.android.google.cn/jetpack/androidx/releases/graphicshttps://developer.android.google.cn/jetpack/androidx/releases/input
大屏幕设计图库里则为大家提供了社交和通信、多媒体、生产力、购物和阅读等市面上常见应用类型的设计参考。
https://developer.android.google.cn/large-screens/galleryhttps://developer.android.google.cn/large-screens/gallery/socialhttps://developer.android.google.cn/large-screens/gallery/mediahttps://developer.android.google.cn/large-screens/gallery/productivityhttps://developer.android.google.cn/large-screens/gallery/shoppinghttps://developer.android.google.cn/large-screens/gallery/reading
隐私和安全
Android 的隐私和安全建立在应用沙盒、开源代码和开放式应用开发的基础上,且一直都是 Android 的核心使命。在 Android 14 中,我们提供了更安全的设备环境,并赋予用户更多的控制权,以保护他们的信息,从而为所有人打造最高质量的平台。
可选照片访问权限
如果您的应用需要访问用户选择的媒体文件,我们建议使用照片选择器 (Photo Picker): 通过整合核心平台功能、Google Play 系统更新和 Google Play 服务,照片选择器可以在 Android 4.4 及以上的设备上为用户提供无需权限的流畅体验。
https://developer.android.google.cn/training/data-storage/shared/photopickerhttps://developer.android.google.cn/about/versions/kitkat
如果您无法使用照片选择器,那么在 Android 14 中,当您的应用请求可视内容媒体权限 (READ_MEDIA_IMAGES / READ_MEDIA_VIDEO,于 SDK 33 中引入) 时,用户可以授权您的应用访问指定的照片和视频。
https://developer.android.google.cn/reference/android/Manifest.permission#READ_MEDIA_IMAGEShttps://developer.android.google.cn/reference/android/Manifest.permission#READ_MEDIA_VIDEO
在新的授权对话框中有如下几个选项:-
允许访问所有照片: 设备上的所有照片和视频库都可以访问
-
允许访问指定照片: 只可以通过 MediaStore 临时访问用户选择的照片和视频
-
不允许访问: 所有照片和视频都不可访问
应用可以再次提请用户选择媒体文件并授权访问,只需在应用清单中声明 READ_MEDIA_VISUAL_USER_SELECTED 权限即可。
https://developer.android.google.cn/guide/topics/manifest/manifest-intro-
READ_MEDIA_VISUAL_USER_SELECTED
https://developer.android.google.cn/reference/android/Manifest.permission.html#READ_MEDIA_VISUAL_USER_SELECTED
请大家在应用中测试这套新行为,并调整应用的用户体验以适配新的授权和媒体选择流程。
凭据管理器
Android 14 在平台 API 中增加了凭据管理器 (Credential Manager),并且通过 Jetpack 开发库和 Google Play 服务,让该功能可以一直向下支持到 Android 4.4 (API 级别 19) 的设备。凭据管理器提供了 API 来检索和存储凭据,且用户可以设置凭据提供方,从而让登录更加轻松便捷。除了使用密码登录外,这个 API 还允许您的应用使用通行密钥 (Passkey) 来进行登录,这是一种无密码登录的全新行业标准。通行密钥建立在扎实的行业标准上,可以在不同的操作系统和浏览器环境中使用,且同时支持网页端和应用端。开发者预览版 2 改进了账户选择的用户界面设计,并且基于开发者预览 1 中收到的反馈对 API 进行了调整。请访问官方文档了解更多:
https://developer.android.google.cn/training/sign-in/passkeys
https://developer.android.google.cn/reference/android/credentials/package-summaryhttps://developer.android.google.cn/training/sign-in/passkeyshttps://fidoalliance.org/passkeys/
更加安全的隐式 Intent
以 Android 14 为目标平台的应用在使用隐式 Intent 创建可变的 PendingIntent 时将抛出一个异常,以防它们被用来触发意外的代码路径。应用在使用 PendingIntent 时需要确保其不可变,或使用显式 Intent。请访问官方文档了解更多:https://developer.android.google.cn/about/versions/14/behavior-changes-14#safer-intents
https://developer.android.google.cn/reference/android/app/PendingIntent
后台启动 Activity
Android 10 (API 级别 29) 及以上版本对在后台运行的应用启动 Activity 的时机施加了限制。这些限制有助于最大限度地减少对用户的干扰,并使他们更容易控制屏幕上显示的内容。为了进一步减少这类干扰因素,Android 14 给前台应用更多的控制权,让它们能够控制与之交互的应用启动 Activity 的能力。具体来说,以 Android 14 为目标平台的应用在发送 PendingIntent 或绑定服务时,需要授予优先权才能在后台启动 Activity。
https://developer.android.google.cn/guide/components/activities/intro-activitieshttps://developer.android.google.cn/guide/components/activities/background-startshttps://developer.android.google.cn/about/versions/14/behavior-changes-14#background-activity-restrictions
精简后台工作
我们在 Android 14 中继续优化应用的协作方式,以改善系统健康状况和电池寿命,并提升终端用户体验。
后台优化
我们在开发者预览版 2 中优化了 Android 的内存管理系统,以改善应用在后台运行时的资源使用情况。在应用进入缓存状态几秒钟后,常规的 Android 应用生命周期 API (如前台服务、JobScheduler 或者 WorkManager) 之外的后台工作将被禁止,且这个禁止过程比 Android 13 快一个数量级。
https://developer.android.google.cn/guide/components/activities/process-lifecycle
减少无法清除的通知数量
在 Android 14 中,未锁定的手持设备上的包含 FLAG_ONGOING_EVENT 标识的通知可被用户清除。而当设备被锁定时,通知无法清除,通知监听器也无法清除它们。对设备功能很重要的通知则彻底无法清除,比如系统和设备策略通知。
https://developer.android.google.cn/reference/android/app/Notification.html#FLAG_ONGOING_EVENT
更好的应用商店体验
Android 14 引入了几个新的 PackageInstaller API,以帮助应用商店改善用户体验。比如 requestUserPreapproval()方法可将 APK 的下载推迟到用户批准安装之后;setRequestUpdateOwnership() 方法可以让安装者表明它将负责正在安装的应用的后续更新;以及 setDontKillApp() 方法,可以让正在被使用的应用通过分割 APK 来无缝安装可选功能。另外,InstallConstraints API 可以确保应用在给定的时机进行更新,比如该应用没被使用时。
https://developer.android.google.cn/reference/android/content/pm/PackageInstallerhttps://developer.android.google.cn/reference/android/content/pm/PackageInstaller.Session#requestUserPreapproval(android.content.pm.PackageInstaller.PreapprovalDetails,%20android.content.IntentSender)-
setRequestUpdateOwnership()
https://developer.android.google.cn/reference/android/content/pm/PackageInstaller.SessionParams#setRequestUpdateOwnership(boolean)https://developer.android.google.cn/reference/android/content/pm/PackageInstaller.SessionParams?hl=en#setDontKillApp(boolean)https://developer.android.google.cn/reference/android/content/pm/PackageInstaller.InstallConstraints
如果您在开发应用商店,欢迎体验这些 API 并和我们分享使用感受:
https://developer.android.google.cn/about/versions/14/feedback
定制化
区域偏好
用户可以通过区域偏好来定制温度单位、每周的第一天和计数系统。比如居住在美国的欧洲用户可能更喜欢用摄氏度而不是华氏度来作为温度单位,以及更习惯将周一 (而不是像美国一样用周日) 作为一周的开始。
用户在新的 Android 设置菜单中会更容易找到并集中调整这些应用偏好设置,而且可以很方便地通过备份和恢复将设置转移到新设备中。我们也为您准备了 API 和 Intent 来读取用户的偏好设置,以调整您应用中信息的显示方式 (getTemperatureUnit, getFirstDayOfWeek)。您也可以注册 BroadcastReceiver 来监听 ACTION_LOCALE_CHANGED 并处理区域偏好的变化。
https://developer.android.google.cn/reference/android/content/Intent#ACTION_LOCALE_CHANGED
应用兼容性
在发布新的平台版本时,我们会优先考虑应用的兼容性,以让更新过程更快、更顺畅。在 Android 14 中,大多数面向应用的变更依然是可选的,这样能为大家提供更多的时间进行调整和适配。我们还更新了工具和流程,帮助大家更快地做好准备。
https://developer.android.google.cn/about/versions/14
在开发者预览版 2 这个阶段,我们依然在收集大家对 API 的使用反馈,以及了解平台变更对大家的应用带来的具体影响。因此,现在正是大家体验新功能,并向我们提交反馈的好时机!
https://developer.android.google.cn/about/versions/14/behavior-changes-allhttps://developer.android.google.cn/about/versions/14/feedback
现在也适合开展应用的兼容性测试并确定相关的工作内容。您无需修改应用的 targetSdkVersion,只需通过开发者选项中的行为变更开关即可进行测试,从而大致了解 Android 14 中的哪些可选变更可能会影响到您的应用。
△ 开发者选项中的应用兼容性开关https://developer.android.google.cn/about/versions/14/migrationhttps://developer.android.google.cn/guide/topics/manifest/uses-sdk-elementhttps://developer.android.google.cn/about/versions/14/reference/compat-framework-changes
我们预计将在 2023 年 6 月抵达平台稳定里程碑。届时我们将提供最终版的 SDK/NDK API 并锁定面向应用的系统行为。这样在正式版本发布之前,您还会有几周的时间进行最终测试。发布时间表详见:https://developer.android.google.cn/about/versions/14/overview
即刻体验 Android 14
不论您是想体验 Android 14 的功能、测试应用还是提交反馈,都可以从这次的开发者预览版开始。如果您想要测试应用在平板电脑和可折叠设备上的兼容性,最简单的方法是使用 Android Studio SDK 管理器最新预览版中 Android 模拟器的平板电脑或可折叠设备配置进行测试。对于手机,只需将系统映像下载并刷入 Pixel 7 Pro / 7 / 6a / 6 Pro / 6 / 5a 5G / 5 / 4a (5G) 设备,即可立即开始使用。如果您没有 Pixel 设备,则可以在 Android Studio 中使用带有 64 位系统映像的 Android 模拟器。
https://developer.android.google.cn/about/versions/14/feedbackhttps://developer.android.google.cn/about/versions/14/setup-sdk#install-sdkhttps://developer.android.google.cn/about/versions/14/download
为了获得最佳的 Android 14 开发体验,我们建议您使用 Android Studio Giraffe 的最新预览版或更高版本。
https://developer.android.google.cn/studio/preview
设置好 SDK 后,您可以:
-
体验新功能和 API - 在开发者预览版的早期阶段,您的反馈至关重要。您可以在我们的跟踪页报告问题。
-
测试应用的兼容性 - 测试您的应用是否受到 Android 14 默认行为变更的影响。请将应用安装到运行 Android 14 的设备或模拟器上进行彻底的测试。
-
使用可选变更项测试应用 - Android 14 提供了可选的行为变更,这些变更仅在您的应用以新平台为目标时才会造成影响。尽早了解和评估这些变更十分重要。为了便于测试,您可以单独启用或者禁用这些变更。
-
设置 Android 14 SDK
https://developer.android.google.cn/about/versions/14/setup-sdk
-
报告问题
https://developer.android.google.cn/about/versions/14/feedback
-
单独启用或者禁用这些变更
https://developer.android.google.cn/about/versions/14/reference/compat-framework-changes
我们将在整个 Android 14 的发布周期内定期更新预览版系统映像和 SDK。这次发布的预览版仅供开发者使用,不面向日常或消费者使用,因此我们仅提供手动下载。在手动安装预览版后,您将通过 OTA 方式自动获得所有后续预览版和 Beta 版更新。请访问官方文档了解详细信息:https://developer.android.google.cn/about/versions/14/get
如果您打算从 Android 13 QPR Beta 版转移到 Android 14 开发者预览版,并且不想擦除您的设备,我们建议您现在就安装本次的开发者预览版 2,否则之后 Android 13 Beta 版可能发布构建日期更新的版本,届时您就无法在不擦除数据的情况下直接安装 Android 14 开发者预览版了。
https://developer.android.google.cn/about/versions/13/get-qpr
随着我们接近 Beta 版的发布,我们也会邀请消费者来体验 Android 14,届时将开放 Android Beta 体验注册。但请注意,目前 Android 14 尚未提供 Beta 版本。
请访问 Android 14 开发者网站了解本次发布的详细信息:https://developer.android.google.cn/about/versions/14
* Java 和 OpenJDK 是 Oracle 和/或其附属公司的商标或注册商标。