作者 / Matthew McCullough – VP of Product Management, Android Developer
我们于近期发布了 Android 15,并将其源代码推送至 Android 开源项目 (AOSP)。未来几周内,Android 15 将在受支持的 Pixel 设备上正式推出,并将于今年晚些时候在三星、Honor、iQOO、Lenovo、Motorola、Nothing、一加、OPPO、真我、夏普、索尼、Tecno、vivo 和小米等设备上推出。
我们很自豪能够通过 AOSP 继续开展我们的开源工作。开源让任何人都可以利用 Android 进行构建并为 Android 做出贡献,从而使设备变得更加多样化、更具创新性。您可以利用您在 Android Studio 中的应用开发技能和 Jetpack Compose,创建在整个生态系统中蓬勃发展的应用。您甚至可以 查看源代码,以便更深入地了解 Android 的工作原理。
Android 15 延续了我们构建私密、安全平台的使命,致力于帮助您提高工作效率,同时为您提供各种新功能,以便您制作精美的应用、打造卓越的媒体和相机体验,尤其是在平板电脑和可折叠设备上提供流畅的用户体验。
我们推出了 Spotlight Weeks 的新教学系列,与您深入探讨 Android 相关的技术主题内容,第一周的内容围绕 Android 15 展开。欢迎您查看第一期内容,以及关于 “无边框” 的更多详细信息。
改善您的开发者体验
虽然我们提高工作效率的大部分工作都围绕 Android Studio、Jetpack Compose 和 Android Jetpack 库等工具展开,但每个新的 Android 平台版本都包含改善 QOL 的更新,以提升开发体验。例如,Android 15 为您提供新的见解和遥测数据,旨在帮助您进一步优化应用体验,从而改善应用在任何平台版本上的运行方式。
-
ApplicationStartInfo API 有助于您深入了解应用的启动情况,包括启动原因、启动阶段耗时、启动温度等。
-
Android Jetpack 中的 Profiling 类简化了在 Android 15 中使用新的 ProfilingManager API 的方式,允许您的应用请求 堆分析报告、堆转储、堆栈采样 或 系统跟踪,以一种新的方式来收集用户设备上应用运行情况的遥测数据。
-
StorageStats.getAppBytesByDataType([type]) API 为您提供有关应用如何使用存储的新见解,包括 apk 文件拆分、提前编译 (AOT) 和加速相关代码、dex 元数据、库和引导配置文件。
-
PdfRenderer API 现在包括了集成高级功能的能力,例如渲染 受密码保护的文件、注释、表单编辑、搜索 以及复制 选择。支持线性 PDF 优化功能,以加快本地 PDF 的查看速度并减少资源使用。Jetpack PDF 库 不仅可以使用这些 API 来简化向应用添加 PDF 查看功能的操作,还计划支持较旧的 Android 版本。
-
新增的 OpenJDK API 可支持额外的 Math/StrictMath 方法、包括 Sequenced Collection/Map/Set 在内的许多 util 更新、Deflater 中的 ByteBuffer 支持 以及 安全密钥更新。这些 API 更新 通过 Google Play 系统更新推送到运行 Android 12+ 至 Android 15 的超十亿台设备上,以便您可以最大范围地使用最新的编程功能。
-
新增的 SQLite API 包括对 只读延迟事务 的支持、在不发出额外查询的情况下检索 已更改行 数或 最后插入的行 ID 的新方法,以及对 原始 SQLite 语句 的直接支持。
-
Android 15 增加了新的 Canvas 绘图功能,包括有助于在 3D 中处理 Canvas 的 Matrix44 和通过与当前着色器或当前着色器的差异相交来生成复杂形状的 clipShader/clipOutShader。
改进排版效果和提高国际化水平
Android 可帮助您打造出精美的应用,使其能在全球多样化的 Android 生态系统中流畅运行。
-
现在,您可以使用 Android 15 中的可变字体创建 FontFamily 实例,而不必使用 buildVariableFamily API 指定 wght 和 ital 轴;文本渲染器将自动调整 wght 和 ital 轴的值,以便显示文本与兼容的字体相匹配。
-
Android 15 中,适用于中文、日文和韩文 (CJK) 的字体文件 NotoSansCJK 成为可变字体,为创意排版开辟了新的可能性。
-
Android 15 默认 捆绑一个旧日文平假名 (即 “Hentaigana”) 字体文件,这既有助于增添独特的设计风格,同时还让开发者可以更准确地理解和传达古代日本文献。
-
Android 15 中的 JUSTIFICATION_MODE_INTER_CHARACTER 针对中文和日文等使用空格进行分段的语言进行对齐优化。
相机和媒体改进
每次 Android 发布都会帮助您为用户带来卓越的媒体和相机体验。
-
对于同时包含 HDR 和 SDR 内容的屏幕,Android 15 允许您使用 setDesiredHdrHeadroom 控制 HDR 余量,以防出现 SDR 内容呈现褪色效果。
-
Android 15 支持智能调整包含响度元数据的 AAC 音频的音频响度和动态范围压缩级别,以便音频级别可以适应用户设备和周围环境。要启用此功能,请使用来自关联 AudioTrack 中的音频会话 ID 实例化 LoudnessCodecController。
-
Android 15 中的 弱光增强 功能可在弱光条件下调整预览流的曝光度,从而实现图像预览增强、在弱光下扫描二维码等功能。
-
Android 15 扩展了对虚拟 MIDI 应用的 UMP 支持,使作曲应用能够将合成器应用作为 虚拟 MIDI 2.0 设备 进行控制,就像控制 USB MIDI 2.0 设备一样。
改善用户体验
我们致力于在每个版本中不断改进 Android 用户体验,同时努力提高性能和电池寿命。以下是 Android 15 的一些改进,旨在提供更直观、更高性能、更便于访问的体验。
-
在 Android 15 上,用户不仅可以保存自己偏好的分屏应用组合以快速访问,还可以在屏幕上固定任务栏以在应用之间快速切换,从而实现 更好的大屏多任务处理。确保您的 应用具有自适应性 比以往任何时候都更为重要。
-
Android 15 默认在以 SDK 35 为目标时 “无边框” 显示应用。此外,系统栏将默认为透明或半透明,内容将在其后面绘制。要确保您的应用已准备就绪,请查看 “使用边衬区处理重叠”(视图) 或 “Compose 中的窗口边衬区”。此外,许多 Material 3 可组合项 可帮助您处理边衬区。
-
Android 15 使 TalkBack 能够支持通过 USB 和安全蓝牙使用 HID 标准的盲文显示屏,以帮助 Android 支持更广泛的盲文显示屏。
-
在受支持的 Android 15 设备上,NfcAdapter 允许应用请求 观察模式 以及注册过滤器,从而在大多数情况下在多个支持 NFC 的应用之间实现一键交易。
-
应用可以 声明一个属性,以允许您的应用或活动在受支持的 “翻盖式” 设备的小外屏上显示。
-
Android 15 大大增强了 AutomaticZenRules,通过添加类型、图标、触发描述和触发 ZenDeviceEffects 的能力,允许应用进一步自定义注意力管理 (勿扰) 规则。
-
Android 15 现在支持以操作系统级执行应用归档和 取消归档。归档操作会删除 APK 和已缓存的文件,但会保留用户数据,并通过 LauncherApps API 返回可显示的应用,并且原始安装程序可以在请求 取消归档 时恢复相关数据。
-
作为改善电池寿命和多任务性能工作的一部分,我们在 Android 15 中对前台服务做出了一些更改,包括新增 数据同步超时、新的媒体处理前台服务类型,以及 在应用拥有 SYSTEM_ALERT_WINDOWS 权限的情况下,限制从 BOOT_COMPLETED 启动前台服务。
-
从 Android 15 开始,16 KB 页面大小支持将在特定设备上作为开发者选项提供。当 Android 使用这种较大的页面大小时,我们的初步测试结果显示,在额外使用约 9% 的内存时,整体性能提升了 5-10%。
隐私和安全增强功能
隐私和安全是我们所有工作的核心,所以我们致力于在每个平台版本中做出有意义的改进,以保护您的应用和我们的用户。
- Android 15 中的 私密空间 支持用户在自己的设备上创建独立的空间,用户可以为该空间设置额外的身份验证步骤,防止敏感应用遭到窥探。对于 某些类型的应用 (如 医疗应用、启动器应用 和 应用商店),可能需要采取额外步骤才能让其在用户的私密空间中正常运行。
- Android 15 支持 使用通行密钥进行一键登录,并支持 自动填充已保存的凭证 到相关输入字段。
- Android 15 增加了 对应用的支持,使其能够检测自身行为是否被记录。这样一来,如果您的应用正在执行敏感操作,您便可以告知用户他们的行为正在被录制。
- Android 15 添加了 allowCrossUidActivitySwitchFromBelow 属性,用以阻止与堆栈上的顶部 UID 不匹配的应用启动活动,以免发生 任务劫持攻击。
- 在 Android 15 中,PendingIntent 创建者默认会 阻止后台活动启动,以帮助防止应用意外创建可能被恶意攻击者滥用的 PendingIntent。
让您的应用、库、工具和游戏引擎整装待发!
如果您开发的是 SDK、库、工具或游戏引擎,现在更重要的是准备所有必要更新,让下游应用和游戏开发者免受兼容性问题的阻碍,从而能针对最新的 SDK 功能进行开发。请务必告知开发者是否需要更新才能完全支持 Android 15。
测试应用的环节包括:通过 Google Play 或其他方式将您的应用安装到运行 Android 15 的设备或模拟器上;运行应用的所有工作流程,检查是否有功能或界面问题;检查应用的 行为变更 以便您集中测试。即使您尚未针对 Android 15 采取任何行动,也请您关注以下几项变更:
-
更改软件包停止状态 - Android 15 更新了软件包 FLAG_STOPPED 状态的行为,在用户启动应用或间接与应用交互之前,使应用保持停止状态。
-
支持 16 KB 的页面大小 - 从 Android 15 开始,部分设备将支持配置为使用 16 KB 页面大小,并作为开发者选项提供。此外,Android Studio 还通过 SDK 管理器提供支持 16 KB 的模拟器系统映像。如果您的应用或库直接或通过 SDK 间接使用 NDK,您可以使用 QPR Beta 版或 Android 15 模拟器系统映像中的开发者选项来测试和修复应用,为即将采用 16 KB 页面大小的 Android 设备做好准备。
-
私密空间支持 - 测试安装在私密空间中的应用/库是否可以正常运行;我们为 医疗应用、启动器应用 和 应用商店 提供了指南。
-
移除旧版表情符号字体文件 - 某些搭载 Android 15 的设备 (如 Pixel) 将不再包含自 Android 13 以来针对兼容性提供的位图 NotoColorEmojiLegacy.ttf 文件,而是仅保留默认的矢量文件。
在兼容性测试中,请彻底测试您应用正在使用的库与 SDK。如果遇到任何问题,您可能需要更新到最新的 SDK 版本或联系开发者寻求帮助。
发布兼容 Android 15 的应用版本后,您便可以开始 相关流程,以更新应用的 targetSdkVersion。
应用兼容性
我们优先考虑应用的兼容性,致力于更快、更流畅地完成每次的平台版本更新。在 Android 15 中,我们将大多数面向应用的更改设置为可选择,直到您的应用目标 SDK 版本为 35。这样,您就有更多时间对应用进行必要的更改。
为了让您能够更轻松地测试可能影响您应用的可选更改,我们今年又根据您的反馈对其中许多更改提供了可切换选项。通过切换开关,您可以从开发者选项或 adb 中单独强制启用或禁用这些更改。您可以 在此处查看操作方法。
△ “开发者选项” 中的应用兼容性切换开关
为了帮助您针对 Android 15 迁移应用,最新的 Android Studio Koala Feature Drop 版本中的 Android SDK 升级助手 现在涵盖了 Android 15 API 更改,并引导您完成升级 targetSdkVersion 的步骤。
△ Android Studio Koala Feature Drop 中的 Android SDK 升级助手
即刻体验 Android 15
如果您有受支持的 Pixel 设备,则将在 Android 15 可用时通过 OTA 收到更新。如果您不想等待,欢迎随时加入 Android 15 QPR Beta 版计划,以获取最新的季度平台发布 (QPR) 测试版。
如果您已经在支持下一个 Android 版本的 Pixel 设备上加入 QPR Beta 版计划,则有机会安装首个 Android 15 QPR Beta 版更新。如果您想在不擦除设备数据的情况下退出 Beta 版计划,请勿安装 Beta 版,而是等待针对 Pixel 设备发布的正式版本更新。应用稳定版本更新后,只要不应用下一个 Beta 版更新,您就可以在无需执行数据擦除操作的情况下退出测试计划。
欢迎您继续关注 Android 15 Spotlight Week 活动,我们将介绍有关 “无边框”、通行密钥、前台服务更新、画中画等主题。您可以在 博客、X、LinkedIn 或 YouTube 频道上关注我们。再次感谢大家参与我们的 Android 开发者预览版和 Beta 版计划。我们期待看到您利用各项 Android 15 更新开发的出色应用。
欢迎您访问 Android 15 开发者网站 了解本次发布的完整信息,也欢迎您持续关注我们,及时了解更多开发技术和产品更新等资讯动态!
Java 和 OpenJDK 是 Oracle 和/或其关联公司的商标或注册商标。