作者 / 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/get https://developer.android.google.cn/about/versions/13/get-qpr https://developer.android.google.cn/about/versions/14 https://developer.android.google.cn/about/versions/14/download https://developer.android.google.cn/about/versions/14/overview#timeline https://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-screens https://developer.android.google.cn/guide/topics/ui/foldables https://developer.android.google.cn/docs/quality-guidelines/tablet-app-quality https://developer.android.google.cn/jetpack/androidx/releases/graphics https://developer.android.google.cn/jetpack/androidx/releases/input 大屏幕设计图库 里则为大家提供了 社交和通信 、 多媒体 、 生产力 、 购物 和 阅读 等市面上常见应用类型的设计参考。 https://developer.android.google.cn/large-screens/gallery 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
Android 的隐私和安全建立在应用沙盒、开源代码和开放式应用开发的基础上,且一直都是 Android 的核心使命。在 Android 14 中,我们提供了更安全的设备环境,并赋予用户更多的控制权,以保护他们的信息,从而为所有人打造最高质量的平台。
如果您的应用需要访问用户选择的媒体文件,我们建议使用 照片选择器 (Photo Picker): 通过整合核心平台功能、Google Play 系统更新和 Google Play 服务,照片选择器可以在 Android 4.4 及以上的设备上为用户提供无需权限的流畅体验。
https://developer.android.google.cn/training/data-storage/shared/photopicker https://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_IMAGES https://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-summary https://developer.android.google.cn/training/sign-in/passkeys https://fidoalliance.org/passkeys/
以 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
Android 10 (API 级别 29) 及以上版本对在后台运行的应用启动 Activity 的时机 施加了限制 。这些限制有助于最大限度地减少对用户的干扰,并使他们更容易控制屏幕上显示的内容。为了进一步减少这类干扰因素,Android 14 给前台应用更多的控制权,让它们能够控制与之交互的应用启动 Activity 的能力。具体来说,以 Android 14 为目标平台的应用在发送 PendingIntent 或绑定服务时,需要 授予优先权 才能在后台启动 Activity。
https://developer.android.google.cn/guide/components/activities/intro-activities https://developer.android.google.cn/guide/components/activities/background-starts https://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/PackageInstaller https://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-all https://developer.android.google.cn/about/versions/14/feedback 现在也适合开展应用的 兼容性测试 并确定相关的工作内容。您无需修改应用的 targetSdkVersion ,只需通过开发者选项中的 行为变更开关 即可进行测试,从而大致了解 Android 14 中的哪些可选变更可能会影响到您的应用。
https://developer.android.google.cn/about/versions/14/migration https://developer.android.google.cn/guide/topics/manifest/uses-sdk-element https://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 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/feedback https://developer.android.google.cn/about/versions/14/setup-sdk#install-sdk https://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 提供了可选的行为变更,这些变更仅在您的应用以新平台为目标时才会造成影响。尽早了解和评估这些变更十分重要。为了便于测试,您可以 单独启用或者禁用这些变更
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 和/或其附属公司的商标或注册商标。
欢迎您点击文末 "发消息" 向我们提交关于 Android 14 的反馈,或分享您对 "Android 开发者" 公众号的意见、建议,以及您希望在此看到的内容。
我们将从前 50 位发送消息的微信粉丝中随机选择 5 位送出开发者礼品一组。
*开发者礼品: Google 手机支架、Android 贴纸、Android 镜头贴、Android 糖果笔、Google Play 糖果笔。
* 获奖者仅限给 "Android 开发者" 发送消息的微信粉丝。
* 本次活动同一微信用户不可重复中奖。
* 我们会通过私信联系获奖的朋友,请届时关注微信消息。
点击屏末 | 阅读原文 | 进一步了解 Android 14 详细更新