2月8日,安卓发布了 Android 14 的第一个开发者预览版,您在这些预览版中的反馈是让 Android 更好地服务于所有人的关键部分。Android 14 继续致力于提高开发人员的工作效率,同时增强性能、隐私、安全性和用户自定义。此预览只是一个开始,随着发布周期的推进,我们将分享更多内容。
Android 全年不断提供增强功能和新功能,您的 Android 14 开发者预览版和季度平台发布 (QPR) 测试版计划反馈在帮助 Android 不断改进方面发挥着关键作用。Android 14 开发者网站提供了更多关于预览版的信息,包括 Pixel 的下载和发布时间表。我们期待听到您的想法,并提前感谢您一直以来的帮助,使 Android 成为适用于所有人的平台。
跨设备和外形规格工作
Android 14 建立在 Android 12L 和 13 中完成的工作之上,以支持平板电脑和可折叠外形。为了帮助您构建适应不同屏幕尺寸的应用程序,我们创建了窗口大小类、滑动窗格布局、活动嵌入和带约束的框等,所有这些都在 Jetpack Compose 中受支持。对于每个版本,我们的目标是让您更轻松地在所有 Android 平台上优化您的应用程序。
为了帮助简化应用程序的准备工作,我们更新了针对大屏幕的应用程序质量指南,并提供了有关构建大屏幕和可折叠设备的更多学习机会。大屏幕画廊包含经过验证的设计模式以及围绕您的应用程序支持的市场的设计灵感,例如 社交和通信、媒体、生产力、购物和阅读应用程序。
多设备体验是 Android 未来的重要组成部分。您今天就可以开始使用跨设备 SDK预览版,让您能够构建丰富的体验,这些体验可以直观地跨不同的设备和外形规格工作,而且还会有更多。
简化后台工作
Android 14 继续努力优化应用程序协同工作的方式,改善系统健康状况和电池寿命,并改善最终用户体验。
JobScheduler 和前台服务的更新和添加
执行一些后台工作比必要的更复杂,例如在 WiFi 可用时下载大文件。我们正在为这项工作创建一个标准路径,以简化您的应用程序开发并可能改善用户体验。我们对前台服务的使用方式也更加固执己见,只为最高优先级的面向用户的任务保留它们,以便 Android 可以改善资源消耗和电池寿命。
在 Android 14 中,我们正在对现有的 Android API(前台服务和JobScheduler )进行更改,包括为用户启动的数据传输添加新功能,以及声明前台服务类型的更新要求。用户启动的数据传输作业将使管理用户启动的下载和上传更加容易,特别是当它们需要限制时,例如仅在 Wi-Fi 上下载。声明前台服务类型的要求允许您清楚地定义应用程序后台工作的意图,同时明确哪些用例适合前台服务。此外,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 中,并且不会导致文本被截断。我们的文档有更多关于最佳实践的内容。
每个应用程序的语言首选项
可以使用LocaleManager.setOverrideLocaleConfig 动态更新应用的 localeConfig,以自定义 Android 设置中每个应用语言列表中显示的语言集。这允许您自定义每个区域的语言列表、运行 A/B 实验,并在您的应用程序使用服务器端本地化推送时提供更新的语言环境。
IME 现在可以使用LocaleManager.getApplicationLocales了解当前应用程序的 UI 语言以更新键盘语言。
语法变形 API
Grammatical Infection API允许您更轻松地为使用具有语法性别的语言的用户添加支持 。例如,
男:“你订阅了……”
女性:“你订阅了……”
中性:“订阅……已启用”
语法性别是语言固有的,在某些非英语语言中不容易解决。与必须在每个字符串基础上应用的 ICU 中的 SelectFormat 相比,这个新的 API 减少了支持查看者性别(谁在查看 UI;而不是在谈论谁)的工作。
要显示个性化翻译,您只需为受影响语言的每个语法性别添加变形的翻译并集成 API。
隐私和安全
运行时接收器
以 Android 14 为目标平台的应用必须指明动态Context.registerReceiver()的使用是否应被视为“已导出”或“未导出”,这是之前版本清单级工作的延续。
更安全的隐式意图
为防止恶意应用程序拦截意图,针对 Android 14 的应用程序被限制在内部发送未指定包的意图。
更安全的动态代码加载
动态代码加载 (DCL) 为恶意软件和漏洞利用引入了出口,因为动态下载的可执行文件可能会被意外操纵,从而导致代码注入。针对 Android 14 的应用需要将动态加载的文件标记为只读。
阻止安装应用程序
恶意软件通常以较旧的 API 级别为目标,以绕过较新 Android 版本中引入的安全和隐私保护。为了防止这种情况,从 Android 14 开始,targetSdkVersion低于 23 的应用将无法安装。选择此特定版本是因为某些恶意软件应用程序使用 targetSdkVersion 22 以避免受到 Android 6.0(API 级别 23)于 2015 年引入的运行时权限模型的约束。
在升级到 Android 14 的设备上,targetSdkVersion 低于 23 的任何应用都将保持安装状态。
可以使用以下 ADB 命令测试针对较旧 API 级别的应用:
adb install --bypass-low-target-sdk-block 文件名.apk
凭据管理器和密钥支持
我们最近发布了Credential Manager的 alpha 版本,这是一种新的 Jetpack API,可让您简化用户的身份验证过程,同时还通过对密钥的支持提高安全性。密钥是密码和其他可钓鱼身份验证因素的更安全替代品,并且对用户来说更方便(它们只需要生物识别刷卡即可在任何设备上安全登录)。
应用兼容性
我们正在努力通过优先考虑应用程序兼容性来使每个平台版本的更新更快、更顺畅。在 Android 14 中,我们对大多数面向应用的更改进行了选择加入,以便您有更多时间进行任何必要的应用更改,并且我们更新了我们的工具和流程,以帮助您更快地做好准备。
OpenJDK 17 支持- 此预览包括对 300 个 OpenJDK 17 类的访问。我们正在努力在即将推出的开发人员预览版中完全启用 Java 17 语言功能。这些包括记录类、多行字符串和模式匹配 instanceof。得益于Google Play 系统更新(Project Mainline),超过 6 亿台设备能够接收包含这些更改的最新 Android 运行时 (ART) 更新。这是我们承诺的一部分,即为应用程序提供跨设备的更一致、更安全的环境,并为用户提供独立于平台版本的新特性和功能。
更轻松地测试和调试更改- 为了让您更轻松地测试可能影响您的应用程序的选择加入更改,我们将在今年再次将其中的许多更改设为可切换。通过切换,您可以从开发人员选项或 中单独强制启用或禁用更改adb。
开发人员选项中的应用程序兼容性切换
平台稳定性里程碑- 与去年一样,我们提前让您知道我们的平台稳定性里程碑,以便您有更多时间规划应用程序兼容性工作。在这个里程碑,我们将提供最终的 SDK/NDK API 以及最终的内部 API 和面向应用程序的系统行为。我们预计将在 2023 年 6 月达到平台稳定性,从那时起您将有几周的时间在正式发布前进行最终测试。
开始使用 Android 14
Developer Preview 包含您尝试 Android 14 功能、测试您的应用以及向我们提供反馈所需的一切。要使用平板电脑和可折叠设备测试您的应用程序,最简单的入门方法是在 Android Studio SDK Manager的最新预览版中使用平板电脑或可折叠配置中的 Android Emulator 。对于手机,您可以立即开始使用Pixel 7 Pro、Pixel 7、Pixel 6a、Pixel 6 Pro、Pixel 6、Pixel 5a 5G、Pixel 5 或 Pixel 4a (5G)设备上的系统映像。如果您没有 Pixel 设备,则可以将 64 位系统映像与 Android Studio 中的 Android Emulator 结合使用。
为了获得 Android 14 的最佳开发体验,我们建议您使用最新的Android Studio Giraffe预览版(或更新的 Giraffe+ 版本)。设置完成后,您应该执行以下操作:
试用新功能和 API - 在开发人员预览的早期阶段,您的反馈至关重要。在反馈页面上报告我们跟踪器中的问题。
测试您当前应用的兼容性——了解您的应用是否受到 Android 14 中默认行为变化的影响;将您的应用程序安装到运行 Android 14 的设备或模拟器上,并对其进行广泛测试。
使用选择加入更改测试您的应用程序- Android 14 具有选择加入行为更改,仅当您的应用程序以新平台为目标时才会影响它。尽早了解和评估这些变化很重要。为了更容易测试,您可以单独打开和关闭更改。
我们将在整个 Android 14 发布周期中定期更新预览系统映像和 SDK。此初始预览版仅供开发人员使用,不适合日常使用或消费者使用,因此我们仅通过手动下载提供。手动安装预览版本后,您将自动通过无线方式获取所有以后的预览版和 Beta 版的未来更新。在这里阅读更多。
如果您打算从Android 13 QPR Beta计划转移到 Android 14 Developer Preview 计划并且不想擦除您的设备,我们建议您现在转移到 Developer Preview 1。否则,您可能会遇到 Android 13 Beta 的构建日期更新的时间段,这将阻止您在不执行数据擦除的情况下直接进入 Android 14 Developer Preview。
当我们发布 Beta 版时,我们也将邀请消费者试用 Android 14,届时我们将开放 Android Beta 计划的注册。目前,请注意 Android Beta 程序尚不适用于 Android 14。
发布者:工程副总裁 Dave Burke
来源:https://android-developers.googleblog.com/2023/02/first-developer-preview-android14.html