Android16

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 还添加了finishAndRemoveTaskCallbackmoveTaskToBackCallback,用于在预测返回时自定义返回栈行为。

持续的进度通知

Android 16 引入了Notification.ProgressStyle,它允许您创建以进度为中心的通知,这些通知可以使用点来表示用户旅程中的状态和里程碑。主要用例包括网约车、外卖和导航。它是实时更新的基础,实时更新将在即将到来的 Android 16 更新中全面实现。

自定义 AGSL 图形效果

Android 16 新增了 RuntimeColorFilter 和 RuntimeXfermode,允许您在 AGSL 中创建阈值、棕褐色和色调饱和度等复杂效果,并将其应用于绘制调用。

帮助创建性能更佳、效率更高的应用程序和游戏

从帮助您了解应用性能的 API,到旨在提升效率的平台改进,Android 16 致力于确保您的应用性能卓越。Android 16为ProfilingManager引入了系统触发的性能分析功能,确保当应用返回有效生命周期时,scheduleAtFixedRate最多只错过一次执行,并立即执行以提高效率;引入了hasArrSupportgetSuggestedFrameRate(int)函数,使您的应用能够更轻松地利用自适应显示刷新率;并在SystemHealthManager中引入了getCpuHeadroom和getGpuHeadroom API 以及CpuHeadroomParamsGpuHeadroomParams参数,以便为游戏和资源密集型应用提供受支持设备上可用 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 的getCheckedsetChecked(int)方法支持"部分选中"状态、setSupplementalDescription方法允许您为ViewGroup提供文本,而不会覆盖其子项的信息,以及setFieldRequired方法允许应用程序告知辅助功能服务表单字段的输入是必填项。

轮廓文本,以实现最大文本对比度

Android 16 引入了轮廓文本,取代了高对比度文本,它会在文本周围绘制更大的对比区域,从而大大提高可读性。此外,它还引入了新的AccessibilityManager API,允许您的应用检查注册监听器,以查看此模式是否已启用。

准备好你的应用、库、工具和游戏引擎!

如果您开发了 SDK、库、工具或游戏引擎,那么现在就准备必要的更新就显得尤为重要,这可以避免下游应用和游戏开发者因兼容性问题而受阻,并让他们能够使用最新的 SDK 功能。如果您的 SDK 需要更新才能完全支持 Android 16,请务必告知您的开发者。

测试包括将您的正式版应用或使用您的库或引擎的测试应用(通过 Google Play 或其他方式)安装到运行 Android 16 的设备或模拟器上。仔细检查应用的所有流程,查找功能或 UI 问题。查看行为变更,以便更有针对性地进行测试。Android 的每个版本都包含平台变更,旨在提升隐私、安全性和整体用户体验,而这些变更可能会影响您的应用。**即使您尚未将目标平台设置为 Android 16,**以下几项变更也同样适用:

其他一些会在您的应用以 Android 16 为目标平台时产生影响的更改:

让你的应用为未来做好准备:

  • 本地网络保护:建议您使用即将推出的 本地网络保护功能测试您的应用。在未来的 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。设置完成后,您应该执行以下操作:

相关推荐
@游子1 小时前
SQL注入之文件读写(四)
android·数据库·sql
b***66611 小时前
【慕伏白教程】Zerotier 连接与简单配置
android·前端·后端
城东米粉儿2 小时前
PropertyValuesHolder与Keyframe 笔记
android
W.Y.B.G2 小时前
vue3项目中集成天地图使用示例
android·前端
Haha_bj2 小时前
二、Kotlin数组(Array)
android·app
t***26592 小时前
万字详解 MySQL MGR 高可用集群搭建
android·mysql·adb
参宿四南河三2 小时前
Android Jetpack 存储篇(DataStore、Room)与 Flow 高效组合
android·app
y***13642 小时前
【MySQL】MVCC详解, 图文并茂简单易懂
android·数据库·mysql
w***48822 小时前
【MySQL】视图、用户和权限管理
android·网络·mysql