最新版发布 | Android 14 现已正式发布至 AOSP!
作者 / Dave Burke, VP of Engineering
我们正式发布 Android 14,并将其源代码推送至 Android 开源项目 (AOSP)。Android 14 旨在提高开发者的生产力,同时为用户带来更好的性能、隐私、安全和定制功能。
Android 14
https://developer.android.google.cn/about/versions/14Android 开源项目
https://source.android.google.cn/
Android 14 自即日起会推送至指定的 Pixel 设备,并将于今年晚些时候出现在更多您喜爱的设备上,包括三星 Galaxy、iQOO、Nothing、一加、OPPO、真我、夏普、索尼、TECNO、vivo、小米等。
大家在 Android 14 开发者预览和 Beta 测试阶段和我们分享了诸多宝贵的反馈和意见,并付诸努力确保您的应用在 Android 14 上提供出色的体验,我们在这里再次向大家表示衷心的感谢。为数十亿 Android 用户打造出优秀的 Android 平台,这包含了我们、Android 硬件制造商以及开发者社区里每一位成员的努力。
Android 14 带来的更新内容众多,本文会着重介绍对开发者影响最大的部分。请您务必前往 Android 14 开发者网站了解所有新功能的详细信息:
性能和效率
Android 14 聚焦的重点领域之一就是为平台带来更好的性能和效率表现。
冻结缓存应用
在 Android 14 之前,缓存的应用可以基本不受限制地运行。在 Android 14 中,我们会在应用进入缓存后很短的时间内将其冻结,其 CPU 时间降为零。在 Android 14 Beta 上,我们发现缓存进程消耗的 CPU 周期要比 Android 13 正式版设备上少 50%。因此,常规的 Android 应用生命周期 API (如前台服务、JobScheduler 或 WorkManager) 之外的后台工作将被禁止。
进程和应用生命周期
https://developer.android.google.cn/guide/components/activities/process-lifecycle
广播优化
为了让被冻结的应用更长时间保持冻结状态 (比如不会获得 CPU 时间),我们调整了应用进入缓存状态后对上下文注册的广播的接收方式: 这些广播也许会被加入队列,一些重复的广播,如 BATTERY_CHANGED,可能会被合并为一个最终广播。
进程和应用生命周期
https://developer.android.google.cn/guide/components/activities/process-lifecycle上下文注册的接收器
https://developer.android.google.cn/guide/components/broadcasts#context-registered-receiversBATTERY_CHANGED
https://developer.android.google.cn/reference/android/content/Intent#ACTION_BATTERY_CHANGED
更快的应用启动速度
随着 Android 14 对缓存应用和广播优化措施一并到来的,是我们得以打破平台缓存应用数量的长期限制,减少了冷启动应用的情况,而且设备 RAM 越大改善就越明显。在 8GB RAM 的设备上,Beta 测试组的冷启动应用减少了 20%,而在 12GB RAM 的设备上则减少了 30%。与热启动相比,冷启动速度较慢,而且耗电量更大。这项工作有效地改善了电量消耗和整体应用启动时间。
减少内存足迹
改进 Android 运行时 (Android Runtime, ART) 对 Android 用户体验影响巨大。代码大小是我们关注的关键指标之一: 生成的文件越小,对内存 (包括 RAM 和存储空间) 的占用就越小。在 Android 14 中,ART 可将代码尺寸平均减小 9.3% 且不影响性能。
定制化
LocaleManager.setOverrideLocaleConfig
https://developer.android.google.cn/reference/android/app/LocaleManager?hl=en#setOverrideLocaleLocaleManager.getApplicationLocales
https://developer.android.google.cn/reference/android/app/LocaleManager#getApplicationLocales()启用各应用自动设定语言支持
https://developer.android.google.cn/guide/topics/resources/app-languages#auto-localeconfig各应用语言偏好设定
https://developer.android.google.cn/guide/topics/resources/app-languages
地区偏好设置 - 地区偏好设置可让用户定制温度单位、每周的第一天和计数系统:
https://developer.android.google.cn/reference/androidx/core/text/util/LocalePreferences
https://developer.android.google.cn/reference/androidx/core/text/util/LocalePreferences
新的媒体功能
超强 HDR 图像格式
https://developer.android.google.cn/guide/topics/media/hdr-image-format
无损 USB 音频 - Android 14 设备支持无损音频格式,让您可以通过 USB 有线耳机获得发烧级的音频体验:
https://developer.android.google.cn/reference/android/media/AudioMixerAttributes
新的图形功能
自定义网格
https://developer.android.google.cn/reference/kotlin/android/graphics/Mesh三角形
https://developer.android.google.cn/reference/kotlin/android/graphics/Mesh?#TRIANGLES:kotlin.Int三角形带
https://developer.android.google.cn/reference/kotlin/android/graphics/Mesh?#triangle_stripAGSL
https://developer.android.google.cn/develop/ui/views/graphics/agsl网格定义
https://developer.android.google.cn/reference/kotlin/android/graphics/MeshSpecification属性
https://developer.android.google.cn/reference/kotlin/android/graphics/MeshSpecification.AttributeVarying
https://developer.android.google.cn/reference/kotlin/android/graphics/MeshSpecification.Varying
HardwareBufferRenderer
https://developer.android.google.cn/reference/android/graphics/HardwareBufferRendererCanvas
https://developer.android.google.cn/reference/android/graphics/CanvasHardwareBuffer
https://developer.android.google.cn/reference/android/hardware/HardwareBufferSurfaceControl
https://developer.android.google.cn/reference/android/view/SurfaceControl
跨设备以及多尺寸屏幕开发
大屏设备应用质量
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为可折叠设备构建应用
https://developer.android.google.cn/guide/topics/ui/foldables大屏设备设计参考图库
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
提升生产力
Google Play 系统更新
https://support.google.com/product-documentation/answer/11462338Jetpack 开发库
https://developer.android.google.cn/jetpack/androidx/explorerGoogle Play 服务
https://developer.android.google.cn/google/play-services/index.html
https://android-developers.googleblog.com/2023/08/latest-artwork-on-hundreds-of-millions-of-devices.html
Google Play 系统更新
https://android-developers.googleblog.com/2019/05/fresher-os-with-projects-treble-and-mainline.html
https://android-developers.googleblog.com/2023/07/credential-manager-beta-easy-secure-authentication-with-passkeys-on-android.html
使用凭据管理器让用户登录
https://developer.android.google.cn/training/sign-in/passkeys使用通行密钥对用户进行身份验证
https://developer.android.google.cn/design/ui/mobile/guides/patterns/passkeys
Health Connect - Health Connect 是一个由用户控制的,用于存放用户健康和健身数据的设备端内容库,它让实现跨应用和跨设备的集成健康和健身体验变得前所未有的简单。Health Connect 是 Android 平台的一部分,通过 Google Play 系统更新进行升级,无需单独下载。在更早的设备上则以应用的形式提供,可通过 Google Play 商店下载。请参阅《Android Health 最新动态》了解 Health Connect 的更多信息。
Health Connect
https://developer.android.google.cn/health-connect
提高直接共享目标的排名
https://developer.android.google.cn/about/versions/14/features#publish-dynamic-shortcuts
提升 Android 后台工作稳定性
https://android-developers.googleblog.com/2023/05/improving-consistency-of-background-work-on-android.html前台服务类型是必填项
https://developer.android.google.cn/about/versions/14/changes/fgs-types-required设备和网络滥用
https://support.google.com/googleplay/android-developer/answer/13315670将前台服务迁移到用户发起的数据传输作业
https://developer.android.google.cn/about/versions/14/changes/user-initiated-data-transferssetRequiredNetworkType
https://developer.android.google.cn/reference/android/app/job/JobInfo.Builder#setRequiredNetworkType%28int%29
用户体验
测试预测性返回手势动画
https://developer.android.google.cn/guide/navigation/custom-back/predictive-back-gesture#dev-option添加对内置和自定义预测性返回动画的支持
https://developer.android.google.cn/about/versions/14/features/predictive-back
隐私和安全
数据分享更新 - 用户将在位置信息的运行时授权对话框中看到一块新的描述,用于突出显示应用与第三方共享位置数据的情况,用户可以了解更多信息并控制应用对数据的访问。
对照片和视频授予部分访问权限 - 在 Android 14 (API 级别 34) 中,当应用请求 Android 13 (API 级别 33) 中引入的任何视觉媒体权限 (READ_MEDIA_IMAGES 或 READ_MEDIA_VIDEO) 时,用户可以授予对其照片和视频的部分访问权限。我们建议您在应用中采用最新的最佳实践方案来适配此项变更。
READ_MEDIA_IMAGES
https://developer.android.google.cn/reference/android/Manifest.permission#READ_MEDIA_IMAGESREAD_MEDIA_VIDEO
https://developer.android.google.cn/reference/android/Manifest.permission#READ_MEDIA_VIDEO选择合适的存储体验
https://android-developers.googleblog.com/2023/08/choosing-right-storage-experience.html
Android 10
https://developer.android.google.cn/about/versions/10Activity
https://developer.android.google.cn/guide/components/activities/intro-activities从后台启动 Activity 的限制
https://developer.android.google.cn/guide/components/activities/background-starts针对从后台启动 Activity 的其他限制
https://developer.android.google.cn/about/versions/14/behavior-changes-14#background-activity-restrictions
targetSdkVersion
https://developer.android.google.cn/guide/topics/manifest/uses-sdk-element
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)
https://developer.android.google.cn/about/versions/14/behavior-changes-14#safer-dynamic-code-loading
https://developer.android.google.cn/about/versions/14/behavior-changes-14#safer-intents
PendingIntent
https://developer.android.google.cn/reference/android/app/PendingIntent
应用兼容性
在发布新的平台版本时,我们会优先考虑应用的兼容性,以让更新过程更快、更顺畅。在 Android 14 中,大多数面向应用的变更依然是可选的,这样能为大家提供更多的时间进行调整和适配,直到您将应用的 targetSdkVersion 升级为 34。我们还更新了工具和流程,帮助大家更快地做好准备。
更轻松地针对变更进行测试和调试 - 为了让您更轻松地测试可能会影响应用的可选变更,我们今年依然为许多变更提供了开关选项。您可以在开发者选项或 adb 中单独强制启用或停用这些变更。请访问官方文档了解详细信息:
应用、开发库、工具
和游戏引擎: 请就绪!
如果您是 SDK、开发库、工具和游戏引擎的开发者,现在发布必要的更新则尤为重要: 您的更新能让下游的应用和游戏开发者免遭兼容性问题困扰,并能及时引入最新的 SDK 功能特性。因此,请务必在发布了 Android 14 所必需的兼容性更新后,及时告知您的下游开发者们。
只需在运行 Android 14 的设备上,通过 Google Play 或其他来源安装您的正式版应用即可开始测试。请测试应用的所有流程,找出功能或用户界面中暴露的问题。请通过行为变更清单 (针对所有应用) 来确定测试重点:
https://developer.android.google.cn/about/versions/14/behavior-changes-all
授予对照片和视频的部分访问权限 - 在 Android 14 中,当应用请求 Android 13 (API 级别 33) 中引入的任何视觉媒体权限 (READ_MEDIA_IMAGES 或 READ_MEDIA_VIDEO) 时,用户可以授予对其照片和视频的部分访问权限。如果您的应用已经在使用照片选择器,则无需额外操作即可适配此项变更,否则请使用新的 READ_MEDIA_VISUAL_USER_SELECTED 权限来优化这部分的用户体验。请访问官方文档了解详细信息: https://developer.android.google.cn/about/versions/14/behavior-changes-all#partial-photo-video-access
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/training/data-storage/shared/photopicker
READ_MEDIA_VISUAL_USER_SELECTED
https://developer.android.google.cn/reference/android/Manifest.permission#READ_MEDIA_VISUAL_USER_SELECTED
选择合适的存储体验
https://android-developers.googleblog.com/2023/08/choosing-right-storage-experience.html
安全的全屏 Intent 通知 - 从 Android 14 开始,能使用全屏 Intent 通知的应用将仅限于提供通话和闹钟的应用。对于不适合此情况的任何应用,Google Play 商店会撤消其默认的 USE_FULL_SCREEN_INTENT 权限。访问官方文档了解详细信息: https://developer.android.google.cn/about/versions/14/behavior-changes-all#secure-fsi
USE_FULL_SCREEN_INTENT
https://developer.android.google.cn/reference/android/Manifest.permission#USE_FULL_SCREEN_INTENT
默认拒绝设定精确的闹钟 - 从 Android 14 开始,系统不再向以 Android 13 及更高版本为目标平台的大多数新安装应用预先授予 SCHEDULE_EXACT_ALARM 权限,该权限默认处于拒绝状态。请在安排精确闹钟前检查权限,并考虑采用无需该权限的精确闹钟替代方案。请访问官方文档了解详细信息: https://developer.android.google.cn/about/versions/14/behavior-changes-all#schedule-exact-alarms
SCHEDULE_EXACT_ALARM
https://developer.android.google.cn/reference/android/Manifest.permission#SCHEDULE_EXACT_ALARM
精确闹钟替代方案
https://developer.android.google.cn/about/versions/14/changes/schedule-exact-alarms?hl=zh-cn#use-cases
非线性字体放大至 200% - 从 Android 14 开始,系统支持字体放大至 200%,为弱视用户进一步提供符合网络内容无障碍指南 (WCAG) 的无障碍功能选项。请访问官方文档了解详细信息:
https://developer.android.google.cn/about/versions/14/behavior-changes-all#non-linear-font-scaling
网络内容无障碍指南
https://www.w3.org/TR/UNDERSTANDING-WCAG20/visual-audio-contrast-scale.html
设置 SDK
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/preview/test-changes
即刻体验 Android 14
系统映像
https://developers.google.cn/android/images安装 SDK
https://developer.android.google.cn/about/versions/14/setup-sdk#install-sdkAndroid 开源项目
https://source.android.google.cn/Android 源代码
https://android.googlesource.com/?format=HTML
为了获得最佳的 Android 14 开发体验,我们建议您使用 Android Studio Hedgehog 的最新版本:
设置好 SDK 后,您可以:
体验新功能和 API - 欢迎大家继续在我们的跟踪页报告问题。 测试应用的兼容性 - 测试您的应用是否受到 Android 14 默认行为变更的影响。请将应用安装到运行 Android 14 的设备或模拟器上进行彻底的测试。 使用可选变更项测试应用 - Android 14 提供了可选的行为变更,这些变更仅在您的应用以新平台为目标时才会造成影响。尽早了解和评估这些变更十分重要。为了便于测试,您可以单独启用或者禁用这些变更: https://developer.android.google.cn/about/versions/14/reference/compat-framework-changes
使用 Android SDK 升级助理更新应用 - Android Studio Hedgehog 现在可以筛选和识别与您的应用有关的特定 Android 14 API 变更,并通过 Android SDK 升级助理逐步引导您升级 targetSdkVersion:
https://developer.android.google.cn/build/sdk-upgrade-assistant
设置 Android 14 SDK
https://developer.android.google.cn/about/versions/14/setup-sdk
https://developer.android.google.cn/about/versions/14
* Java 和 OpenJDK 是 Oracle 和/或其附属公司的商标或注册商标。
欢迎您点击文末 "发消息" 向我们提交关于 Android 14 的反馈,或分享您对 "Android 开发者" 公众号的意见、建议,以及您希望在此看到的内容。
我们将从发送消息的微信粉丝中随机选择 5 位送出开发者礼品一组。
*开发者礼品: Android 糖果笔、Google Play 糖果笔、Android 公仔盲盒、Android 贴纸。
*获奖者仅限给 "Android 开发者" 发送消息的微信粉丝。
*本次活动同一微信用户不可重复中奖。
*我们会通过私信联系获奖的朋友,请届时关注微信消息。推荐阅读