【ArchSummit架构师峰会】探讨数据与人工智能相互驱动的关系>>> 了解详情
写点什么

探索 Android 14:首个开发者预览版的新功能与特性

作者:Dave Burke

  • 2023-03-02
    北京
  • 本文字数:4974 字

    阅读完需:约 16 分钟

探索 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)。

 


立即体验 Android 14

 

本次开发者预览版包含值得尝试的 Android 14 功能、应用测试工具,也期待大家给出反馈。要使用平板电脑和可折叠设备测试应用表现,最简单的方法是在Android Studio SDK管理器的最新预览版中,选择 Android Emulator 的平板电脑或可折叠配置项。在手机端,您可以立即在 Pixel 7 Pro、Pixel 7、Pixel 6a、Pixel 6 Pro、Pixel 6、Pixel 5a 5G、Pixel 5 或 Pixel 4a (5G) 设备上安装系统镜像。如果您没有 Pixel 设备,也可以在 Android Studio 中将 64 位系统镜像与 Android Emulator 配合使用。

 

要获得 Android 14 的最佳开发体验,我们建议您使用最新的 Android Studio Giraffe 预览版(或者更新的 Giraffe+版本)。设置完成之后,推荐您进行如下操作。

 

  • 体验新功能与 API。您的反馈对于尚处于早期阶段的开发者预览版非常重要。请在反馈页面中上报您发现的问题。

  • 测试当前应用的兼容性。了解您的应用是否受到 Android 14 中默认行为变化的影响;请将您的应用安装到运行 Android 14 的设备或模拟器上,并对其进行广泛测试。

  • 通过可选变更测试您的应用。Android 14 中包含大量可选变更项,仅在您的应用针对 Android 14 完成升级后才会起效。请尽早了解并评估这些变更。为了便于测试,您可以单独开启和关闭特定变更项。

 

在整个 Android 14 发布周期内,我们将定期更新系统镜像和 SDK 预览版。此次初始预览版仅供开发者使用,不适合日常场景或普通用户,因此我们仅开放手动下载。一旦您手动安装了预览版,将自动通过无线方式获取未来所有预览版和 beta 版更新。点击此处了解更多(https://developer.android.com/about/versions/14/get)。

 

如果您打算从 Android 13 QPR Beta 转向 Android 14 开发者预览版,但又不想擦除您的设备,我们建议您直接转移至开发者预览版 1。否则,后续当 Android 13 beta 更新时间到来时,您将无法在不擦除数据的前提下直接转向 Android 14 开发者预览版。

 

在 Beta 版发布时,我们也将邀请消费者试用 Android 14。届时我们将开放 Android Beta 计划注册。但请注意,目前 Android Beta 计划尚不适用于 Android 14。

 

如需获取完整信息,请点击此处访问 Android 14 开发者网站(https://developer.android.com/about/versions/14)。

 

原文链接:

https://android-developers.googleblog.com/2023/02/first-developer-preview-android14.html

 

相关阅读:

Android 资源大汇总

在 Android 12 中构建更现代的应用 Widget

Android 面试必备!爆火超全的《Android 性能优化全方面解析》

Android Manifest 功能与权限描述大全,阿里大牛整理

2023-03-02 16:2510142

评论

发布
暂无评论
发现更多内容

新mac笔记本需要做的事情

好好学习

Mac

Jenkins权限管理

kcnf

汉字不能编程?别闹了,只是看着有点豪横!容易被开除!

小傅哥

spring 小傅哥 aop 汉字编程

MySQL事务解析

一个有志气的DB

MySQL 事务隔离级别 mysql事务

PhotoShop切图,一篇文章就够用了

cwang

Web 工具 PhotoShop

英语学习中听和说的区别

董一凡

学习

华为“补洞”:去年重新设计超过6000万行代码

罗燕珊

华为 实体清单

一想到有95%的问题还没解决,我就calm down了

赵新龙

科普 宇宙 后真相时代

笔记:《如何系统思考》之如何应用系统思考

wiflish

思维方式

《零基础学 Java》 FAQ 之 8-Java方法调用是传值还是传引用

臧萌

Java

2020第一篇技术博客

java劝退师首席大弟子

生活

谈谈控制感(6):虚幻的控制感也好用

史方远

职场 心理 成长

CentOS 6 升级 glibc

wong

centos glibc

写作对我的意义

Neco.W

总结 思考 写作 感悟

用原理认知世界,用情绪驱动行为

史方远

职场 心理 成长

识别代码中的坏味道(二)

Page

Java 面向对象 复杂代码优化 重构 CleanCode

Android | Tangram动态页面之路(三)使用

哈利迪

android

中小企业如何做运维自动化?

外滩运维专家

运维 spug 运维自动化 jenkins ansible

比AtomicLong更优秀的LongAdder确定不来了解一下吗?

一枝花算不算浪漫

并发编程 jdk源码

如何用一套引擎搞定机器学习全流程?

Apache Flink

大数据 flink 流计算 实时计算

写在开头

宋胖子

回“疫”录(20):世界从来不会欺负听话的人

小天同学

疫情 回忆录 现实纪录 纪实

键入网址后,其间发生了什么?

小林coding

TCP 计算机网络 网络协议 IP HTTP

Design Sprint 教你五天完成产品迭代

Yanel 说敏捷产品

产品 敏捷 设计 产品设计 团队

一文带你了解 HTTP 黑科技

cxuan

大前端 HTTP

解决 Django 多进程下,logging 记录日志错乱问题

AlwaysBeta

Python django 编程 日志 log

如何搞定Kafka重复消费?

奈学教育

kafka kafka配置

走进Golang之编译器原理

何磊

编译原理 Go 语言

如何发布一个npm包-创建,发布,更新,撤销及常见问题解决

Brave

npm

Dart 进阶 | 深入理解 Function & Closure

LitaVadaski

flutter dart

JAVA内存模型与线程

颇风

Java 内存模型 JVM

探索 Android 14:首个开发者预览版的新功能与特性_移动_InfoQ精选文章