SDK 的主要和次要版本发布
在 Android 16 中,我们引入了小版本 SDK 版本的概念,以便更快地迭代我们的 API,从而反映出 Android 为应用程序和设备带来的快速创新步伐。

相机和媒体 API 助力创作者
Android 16 增强了对专业相机用户的支持,支持夜间模式场景检测、混合自动曝光和精确的色温调节。借助全新的Intent 操作,拍摄动态照片比以往任何时候都更加轻松。我们还持续改进 UltraHDR 图像,支持 HEIC 编码和 ISO 21496-1 草案标准中的新参数。对高级专业视频(APV) 编解码器的支持提升了 Android 在专业录制和后期制作工作流程中的地位,其视频质量几乎无损,即使经过多次解码/重新编码也不会出现严重的视觉质量下降。
此外,Android 的照片选择器现在可以嵌入到视图层次结构中,用户会喜欢搜索云媒体的功能。
更稳定、更美观的应用程序
Android 16 引入了一些改进,旨在提升应用的视觉一致性和美观度,为即将到来的Material 3 Expressive风格奠定了基础。面向 Android 16 的应用将无法再选择不采用全屏显示,并且会忽略elegantTextHeight属性,以确保阿拉伯语、老挝语、缅甸语、泰米尔语、古吉拉特语、卡纳达语、马拉雅拉姆语、奥里亚语、泰卢固语或泰语的正确间距。
自适应安卓应用
由于 Android 应用现在可以在各种设备上运行,并且在大屏幕上支持更多窗口模式,开发者应该构建能够适应任何屏幕和窗口尺寸(无论设备方向如何)的 Android 应用。对于目标平台为 Android 16(API 级别 36)的应用,Android 16 对系统管理方向、可调整大小和宽高比限制的方式进行了更改。在最小宽度大于等于 600dp 的显示屏上,这些限制不再适用,应用将填充整个显示窗口。您应该检查您的应用,确保现有 UI 能够无缝缩放,并在纵向和横向宽高比下都能良好运行。我们提供了相应的框架、工具和库来帮助您完成这项工作。

您可以通过启用UNIVERSAL_RESIZABLE_BY_DEFAULT标志,在不使用应用兼容性框架的情况下测试这些覆盖设置。阅读更多关于Android 16 中方向和可调整大小 API 的更改。
默认提供预测反馈等等
面向 Android 16 的应用将默认支持返回主屏幕、跨任务和跨活动切换的系统动画。此外,Android 16 将预测性返回导航扩展到三键导航,这意味着用户长按返回键后,会在返回之前看到上一屏幕的预览。
为了更方便地实现返回主屏幕动画,Android 16 为onBackInvokedCallback添加了支持,并引入了新的PRIORITY_SYSTEM_NAVIGATION_OBSERVER。此外,Android 16 还添加了finishAndRemoveTaskCallback和moveTaskToBackCallback,用于在预测返回时自定义返回栈行为。
持续的进度通知
Android 16 引入了Notification.ProgressStyle,它允许您创建以进度为中心的通知,这些通知可以使用点和段来表示用户旅程中的状态和里程碑。主要用例包括网约车、外卖和导航。它是实时更新的基础,实时更新将在即将到来的 Android 16 更新中全面实现。

自定义 AGSL 图形效果
Android 16 新增了 RuntimeColorFilter 和 RuntimeXfermode,允许您在 AGSL 中创建阈值、棕褐色和色调饱和度等复杂效果,并将其应用于绘制调用。
帮助创建性能更佳、效率更高的应用程序和游戏
从帮助您了解应用性能的 API,到旨在提升效率的平台改进,Android 16 致力于确保您的应用性能卓越。Android 16为ProfilingManager引入了系统触发的性能分析功能,确保当应用返回有效生命周期时,scheduleAtFixedRate最多只错过一次执行,并立即执行以提高效率;引入了hasArrSupport和getSuggestedFrameRate(int)函数,使您的应用能够更轻松地利用自适应显示刷新率;并在SystemHealthManager中引入了getCpuHeadroom和getGpuHeadroom API 以及CpuHeadroomParams和GpuHeadroomParams参数,以便为游戏和资源密集型应用提供受支持设备上可用 GPU 和 CPU 资源的估算值。
作业调度程序更新
Android 16 中的`JobScheduler.getPendingJobReasons` 方法会返回任务处于待处理状态的多个原因,这些原因既包括您显式设置的约束,也包括系统设置的隐式约束。新增的`JobScheduler.getPendingJobReasonsHistory`方法会返回最近一次待处理任务原因变更的列表,方便您更好地调整应用在后台的运行方式。
Android 16 正在根据应用程序所在的待机桶、作业是否在应用程序处于顶层状态时开始执行以及作业是否在应用程序运行前台服务时执行,对常规作业和加速作业的运行时配额进行调整。
为了检测(然后减少)放弃的作业,应用程序应该使用系统为放弃的作业分配的新作业停止原因STOP_REASON_TIMEOUT_ABANDONED ,而不是STOP_REASON_TIMEOUT。
16KB 页面大小
Android 15 引入了对 16KB 页面大小的支持,以提升应用启动、系统启动和相机启动的性能,同时降低电池消耗。Android 16 新增了16KB 页面大小兼容模式,结合Google Play 的最新技术要求,使 Android 设备距离支持这一重要改进的目标更近了一步。您可以使用最新版 Android Studio 中的16KB 页面大小检查和 APK 分析器来验证您的应用是否需要更新。
ART内部变更
Android 16 包含了 Android Runtime (ART) 的最新更新,这些更新提升了 Android Runtime (ART) 的性能,并增加了对更多语言特性的支持。超过 10 亿台运行 Android 12(API 级别 31)及更高版本的设备也可通过 Google Play 系统更新获得这些改进。依赖于内部非 SDK ART 结构的应用和库可能无法在这些更改后继续正常工作。
隐私和安全
Android 16 延续了我们提升安全性和保障用户隐私的使命。它包括:增强了对 Intent 重定向攻击的安全性;使MediaStore.getVersion对每个应用都是唯一的;新增了一个允许应用共享Android Keystore密钥的 API;集成了最新版本的Android 隐私沙盒;在伴侣设备配对流程中引入了一种新行为来保护用户的位置隐私;并允许用户在照片选择器中轻松选择和限制对应用拥有的共享媒体的访问权限。
本地网络权限测试
Android 16 允许您的应用测试即将推出的本地网络权限功能,该功能需要您的应用获得 NEARBY_WIFI_DEVICES 权限。此变更将在未来的 Android 主要版本中强制执行。
一款为所有人打造的安卓系统
Android 16 新增了Auracast 广播音频(兼容 LE Audio 助听器)、辅助功能改进(例如扩展TtsSpan属性,使其包含TYPE_DURATION 属性) 、AccessibilityNodeInfo中新增基于列表的 API 、改进了对可展开元素的支持(使用setExpandedState 方法)、 为不确定状态的ProgressBar小部件添加了RANGE_TYPE_INDETERMINATE属性、 AccessibilityNodeInfo 的getChecked和setChecked(int)方法支持"部分选中"状态、setSupplementalDescription方法允许您为ViewGroup提供文本,而不会覆盖其子项的信息,以及setFieldRequired方法允许应用程序告知辅助功能服务表单字段的输入是必填项。
轮廓文本,以实现最大文本对比度
Android 16 引入了轮廓文本,取代了高对比度文本,它会在文本周围绘制更大的对比区域,从而大大提高可读性。此外,它还引入了新的AccessibilityManager API,允许您的应用检查或注册监听器,以查看此模式是否已启用。
准备好你的应用、库、工具和游戏引擎!
如果您开发了 SDK、库、工具或游戏引擎,那么现在就准备必要的更新就显得尤为重要,这可以避免下游应用和游戏开发者因兼容性问题而受阻,并让他们能够使用最新的 SDK 功能。如果您的 SDK 需要更新才能完全支持 Android 16,请务必告知您的开发者。
测试包括将您的正式版应用或使用您的库或引擎的测试应用(通过 Google Play 或其他方式)安装到运行 Android 16 的设备或模拟器上。仔细检查应用的所有流程,查找功能或 UI 问题。查看行为变更,以便更有针对性地进行测试。Android 的每个版本都包含平台变更,旨在提升隐私、安全性和整体用户体验,而这些变更可能会影响您的应用。**即使您尚未将目标平台设置为 Android 16,**以下几项变更也同样适用:
- 蓝牙: Android 16 改进了蓝牙连接丢失处理,这会影响重新配对的方式。
- 辅助功能: announceForAccessibility已弃用;请使用推荐的替代方案。请务必使用新的轮廓文本功能进行测试。
- 16KB 页面大小: 如果您的应用不支持 16KB 页面大小,您可以使用新的兼容模式标志,但我们建议迁移到 16KB 以获得最佳性能。
- Intent: Android 16增强了对 Intent 重定向攻击的安全性。请测试您的 Intent 处理方式,仅在绝对必要时才选择退出这些保护措施。
- 提示: 如果您使用反射、JNI 或任何其他方式访问 Android 内部机制,您的应用可能会出现问题。这绝非最佳实践。请务必进行充分的测试。
- **广播:**使用优先级的有序广播仅在同一进程内有效。如果需要跨进程排序,请使用其他进程间通信 (IPC) 机制。
- JobScheduler: Android 16 中 JobScheduler 配额的执行更加严格;如果任务在应用处于后台、前台服务正在运行或处于活动备用存储桶中执行,则会触发配额限制。`setImportantWhileForeground`现在不再执行任何操作。当检测到应用无法停止任务时,会触发新 的停止原因`STOP_REASON_TIMEOUT_ABANDONED` 。
其他一些会在您的应用以 Android 16 为目标平台时产生影响的更改:
- 健康与健身: 健康与健身权限已进行更改。
- 大屏幕设备: 方向、可调整大小和宽高比限制将被忽略。请确保您的布局支持各种宽高比下的所有方向,以适应不同的屏幕表面。
- 核心功能:对 固定费率工作调度进行了优化。
- 用户体验: 变更包括取消边缘到边缘选择退出、 预测性返回的强制迁移或选择退出,以及禁用优雅字体 API。
让你的应用为未来做好准备:
- 本地网络保护:建议您使用即将推出的 本地网络保护功能测试您的应用。在未来的 Android 主要版本中,该功能将使用户能够更好地控制哪些应用可以访问其本地网络上的设备。
在进行兼容性测试时,请务必全面测试应用所使用的库和 SDK。如果遇到任何问题,您可能需要更新到最新的 SDK 版本,或者联系开发者寻求帮助。
发布与 Android 16 兼容的应用版本后,即可开始更新应用的targetSdkVersion。请查看应用面向 Android 16 时的行为变更,并使用兼容性框架来帮助快速检测问题。
开始使用 Android 16
如果您尚未参与 Android Beta 测试,您的 Pixel 设备应该很快就会收到 Android 16 更新。如果您没有 Pixel 设备,可以使用 Android Studio 中的 Android 模拟器来运行 64 位系统镜像。如果您目前使用的是 Android 16 Beta 4.1 版本,并且尚未参与 Android 16 QPR1 Beta 测试,您可以选择退出该计划,之后系统会通过 OTA 方式推送 Android 16 正式版。
为了获得最佳的 Android 16 开发体验,我们建议您使用最新 Canary 版本的Android Studio Narwhal。设置完成后,您应该执行以下操作:
- 测试您当前的应用程序的兼容性,了解您的应用程序是否会受到 Android 16 的变化影响,并将您的应用程序安装到运行 Android 16 的设备或Android 模拟器上,并进行全面测试。