关于我们

强劲算力,源源动力

探索 Android 14:首个开发者预览版的新功能与特性
发布时间:2023-03-03 15:07:39    来源:醉月
探索 Android 14:首个开发者预览版的新功能与特性

让 Android 为全球数十亿用户提供良好服务,是每一家 Android 硬件制造商与软件开发社区共同协作的结果。

 

我们发布了 Android 14 首个开发者预览版,欢迎大家在体验之余提出反馈。这些反馈意见将决定 Android 未来能否更好地服务于所有用户。Android 14 在继续帮助开发人员提升工作效率的同时,也在性能、隐私、安全性和用户自定义等方面做出增强。此次预览版只是个开始,随着发布周期的推进,我们将为您分享更多内容。

 

Android 将全年不断带来更多增强与新功能,您通过 Android 14 开发者预览版与季度平台发布(QPR)测试计划提交的反馈,将帮助我们不断完善 Android 中的方方面面。Android 14开发者网站上提供关于预览版的更多信息,包括 Pixel 的下载与发布时间表。我们期待听到您的想法,并提前感谢大家一直以来的帮助。正是我们的共同努力,让 Android 一步步成长为适合所有人的移动平台。

 


支持多种设备及外形规格

 

Android 14 以之前的 Android 12L 与 13 为基础,可支持平板电脑及可折叠外形设计。为了帮助您轻松面向不同屏幕尺寸开发应用程序,我们建立了窗口大小类滑动窗格布局Activity嵌入与带约束框体等,目前 Jetpack Compose 已经全部提供支持。Android 的各个版本都希望助您降低开发难度,在不同设备之上优化自己的应用程序。

 

为了帮助简化不同设备平台的准备工作,我们更新了针对大屏幕的应用程序质量指南,并提供关于为大屏/可折叠设备开发软件的更多指南内容。大屏画廊(large screen gallery)中包含经过验证的设计模式,以及围绕应用程序支持的市场设计灵感,包括社交与通讯媒体生产力购物阅读等各种应用程序类型。

 

多设备体验也是 Android 下一步发展中的重要组成部分。您现在已经可以体验跨设备SDK的预览版,借此在不同设备及外形规格之上建立起通行的丰富体验。未来还将有更多功能选项向您开放。

 

简化后台工作

 

Android 14 将继续努力优化应用程序的协同方式,改善系统健康状况及电池续航,提供更好的最终用户体验。

 

更新/添加更多 Scheduler 与 Foreground Services

 

此前,某些后台工作的执行方式过于复杂,确实没有必要(例如在 WiFi 环境下下载大文件)。我们正为这项工作建立标准路径,借此简化您的应用程序并尽量改善用户体验。但在前台服务方面,我们决定继续延续原有思路,只为面向用户的最高优先级任务保留,确保 Android 14 能够改善资源消耗和电池续航。

 

在 Android 14 中,我们正对现有 Android API(包括Foreground ServicesJobScheduler)进行变更,包括为用户启动的数据传输添加新功能,并对前台服务类型做出新的声明要求。现在,应用程序可以更轻松地管理由用户启动的数据传输作业,包括下载和上传操作——例如仅在 WiFi 环境下执行上传/下载。通过对前台服务类型的强制声明要求,大家可以明确定义应用程序后台工作的意图,同时明确其中哪些用例适用于前台服务。此外,Google Play 也将推出新政策,以确保这些 API 得到正确使用。

 

优化广播

 

我们对内部广播系统进行了多项优化,旨在提高电池续航和响应速度。虽然大多数优化限于 Android 内部,不会对应用程序造成影响,但我们也调整了应用程序进入缓存状态后接收上下文注册广播的方式。指向上下文注册接收程序的广播可能会排队,在目标脱离缓存状态后才被实际传递给应用程序。此外,包括 BATTERY_CHANGED 在内的一些重复性上下文注册广播可能会被合并为单一最终广播,并在应用程序脱离缓存状态后一次性交付。

 

精准闹钟

 

调用精准闹钟会显著影响设备资源,例如电池续航。因此在 Android 14 中,针对 Android 13+(SDK 33+)的新安装应用必须首先向用户申请SCHEDULE_EXACT_ALARM特别授权,之后才能设置精准闹钟。应用可以通过提示将用户引导至设置界面,但我们仍鼓励各位开发者评估实际用例,尽可能选择其他更灵活的替代方法

 

针对 Android 13+(SDK 33+)的时钟和日历应用,在其核心应用工作流程中仍可使用精准闹钟,且仅须在安装时声明获取 USE_EXACT_ALARM 普通权限。但除非符合政策条款的要求,否则应用无法通过清单中的此项权限,将其应用版本发布至 Play 商店。

 

定制化

 

我们将继续确保 Android 用户可以根据个人需求调整使用体验,包括增强的辅助选项与国际化功能。

 

非线性缩放的大字体

 

从 Android 14 开始,用户将能够将字体放大至 200%。之前,Pixel 设备上的最高字体放大比例为 130%。

 

为了解决文本过大的问题,从 Android 14 起,系统会自动应用非线性字体缩放曲线,确保字体已经较大的段落放大速度较慢、原本字体较小的段落放大更快。

 


在 Android 14 中,您可以使用“辅助功能->显示大小和文本”设备中的“字体大小”选项,以最大字体尺寸测试您的应用 UI。请确保高速后的大文本字体在 UI 中正确反映,且不会导致文本内容被换行截断。更多细节,请参考我们的最佳实践说明文档(http://developer.android.com/about/versions/14/features#non-linear-font-scaling)。

 

为各应用设置不同的语言偏好

您可以使用LocaleManager.setOverrideLocaleConfig动态更新应用的 localeConfig,以自定义 Android 设置中各应用语言列表中显示的语言集。通过这种方式,您可以自定义各地区的语言列表、运行 A/B 实验,并在应用使用服务器端本地化推送时提供经过更新的语言环境。

 

IME 现可使用 LocaleManager.getApplicationLocale 知晓当前应用的 UI 语言,并相应更新键盘语言。

语法性别 API

语法性别API现可帮助您在具有性别语法差异的语种环境下,轻松根据用户性别做出表述调整。例如:

 

男性: “Vous êtes abonné à...”

女性: “Vous êtes abonnée à…”

中性: “Abonnement à…activé”

 

某些非英语语言中天然存在性别语法差异,这是个难以解决的老大难问题。与其在各字符串的基础上使用 ICU 中的 SelectFormat,新 API 大大优化了对当前使用者的性别体现(注意,指向的是当前使用者的性别,而非所指向者的性别)。

 

要显示个性化翻译,您需要为具备性别语法差异的各语种添加相应翻译,并集成语法性别 API。

 

隐私与安全

运行时接收器

 

以 Android 14 为目标平台的应用,必须明确指定动态 Context.registerReceiver()的使用为“已导出”或者“未导出”,这也是对之前版 manifest 层级工作的延续。点击此处了解更多(https://developer.android.com/about/versions/14/behavior-changes-14#runtime-receivers-exported)。

 

更安全的隐式意图

 

为了防止意图被恶意应用所拦截,Android 14 会限制应用仅在内部发送未指定包的意图。点击此处了解更多(https://developer.android.com/about/versions/14/behavior-changes-14#safer-intents)。

 

更安全的动态代码加载

 

动态代码加载(DCL)经常成为恶意软件和漏洞利用的突破口,动态下载的可执行文件可能被意外操纵,进而导致代码注入。针对 Android 14 的应用必须将动态加载的文件标记为只读,点击此处了解更多(https://developer.android.com/about/versions/14/behavior-changes-14#safer-dynamic-code-loading)。

 

阻止应用安装

恶意软件通常会以较旧的 API 为目标,借此绕过 Android 新版本中引入的安全和隐私保护机制。为了防止这种情况,从 Android 14 开始,targetSdkVersion 低于 23 的应用将无法安装。之所以选择以这个版本为分界线,是因为某些恶意软件会利用 targetSdkVersion 22 以避免受到 2015 年发布的 Android 6.0(API level 23)中的运行时权限模型的约束。

 

但在升级到 Android 14 之后,设备上 targetSdkVersion 低于 23 的全部已安装应用仍可正常运行。

 

您可以使用以下 ADB 命令,对指向较旧 API level 的应用进行测试:

 

adb install --bypass-low-target-sdk-block FILENAME.apk
复制代码

 

凭证管理器与密钥支持

 

我们最近发布了凭证管理器的 alpha 版。这是一种新的 Jetpack API,可帮助您简化用户的身份验证过程,同时通过密钥支持来提高安全性。密码是一种比传统密码和其他可钓鱼身份验证因素的更安全替代选项,而且对用户来说更加方便(只需通过生物特征识别,即可在任意设备上安全登录)。点击此处了解更多(https://android-developers.googleblog.com/2023/02/bringing-together-sign-in-solutions-and-passkeys-android-new-credential-manager.html?m=1)。

 

应用兼容性

 

我们正倾力关注应用程序的兼容性,希望借此让各个平台版本提供更快、更顺畅的更新体验。在 Android 14 中,我们将大部分面向应用的变更都设置为可选项,您将有更多时间据此做应用变更,并在充分就绪后发布新版本。我们还更新了 Android 开发工具和流程,希望帮助大家快速做好准备。

 

OpenJDK 17 支持。此预览包括对 300 个 OpenJDK 17 类的支持。我们正努力在即将推出的开发者预览版中全面支持 Java 17 语言功能,包括记录类、多行字符串和模式匹配 instanceof 等。得益于 Google Play 的系统更新(Mainline 项目),目前已有超过 6 亿台 Android 设备能够接收到包含这些变更的最新 Android 运行时(ART)。我们将继续践行做出的承诺,为各类应用提供更安全、跨设备一致性更强的环境,也让更多用户能够体验到独立于设备平台之外的新功能与新特性。

 

降低变更测试与调试难度。为了帮助大家轻松对可能影响应用的变更开展测试,我们将在今年把大部分变更设置为可选项。您可以在开发者选项或通过 ADB 命令单独启用或禁用特定变更,点击此处了解更多(https://developer.android.com/about/versions/14/reference/compat-framework-changes)。

 


平台稳定性里程碑。与去年一样,我们将提前向大家公布平台的稳定性里程碑,让您有更多时间规划应用的兼容性工作。在本次里程碑中,我们将提供最终 SDK/NDK API 以及最终内部 API 和面向应用的系统行为。我们预计将在 2023 年 6 月达到平台稳定性里程碑,在此之后您将有几周时间为正式版的发布做最终测试和准备。点击此处查看新版本的具体发布时间表(https://developer.android.com/about/versions/14/overview)。

 

产品服务