今天,谷歌发布了Android 11的第二个开发者预览版。和此前发布的第一个预览版相同,该预览版也仅适用于开发人员,需要手动下载,目前支持Pixel 2/3/3a/4系列刷机。
Android 11的第二个开发者预览版并没有引入任何突破性的新功能,很大程度上是首个预览版的维护升级版本。对此,谷歌研发副总裁 Dave Burke 表示:“它仍然是早期版本,但是您可以开始了解操作系统如何在此版本中实现新体验,从无缝5G连接到围绕着屏幕改进UI,再到更智能的键盘和更快的消息传递体验。”
下面我们来看一下究竟有哪些更新。
一、5G 状态 API
DP2 增加了 5G 状态 API,可以让您快速检查用户当前是否连接至 5G New Radio (新空口) 或 Non-Standalone (非独立组网模式) 网络。您可以使用它来展示您的应用的 5G 体验,或是在用户连接成功后进行品牌宣传。您可以将此 API 与 5G 动态计费状态 API、带宽估测 API 以及现有的网络连接 (Connectivity Manager) API 结合使用,以充分活用 5G 更高的速度和更低的延迟。
动态计费状态 API:https://developer.android.goo...
带宽估测 API
https://developer.android.goo...
现有的网络连接 (Connectivity Manager) API
https://developer.android.goo...
二、可折叠设备的铰链角度
针对可折叠设备,开发者们提出的头号要求是通过 API 获取设备的屏幕折叠角度。Android 11 现在支持铰链角度传感器,应用可以直接查询,或通过新的 AndroidX API 获取精确的铰链角度,从而为可折叠设备打造自适应体验。
铰链角度传感器https://developer.android.goo...
三、呼叫过滤服务的改进
为了帮助用户管理语音自动电话 (robocall),我们添加了新的 API,以使呼叫过滤应用可以为用户提供更多帮助。除了将来电的 STIR / SHAKEN 状态 (均为防范呼叫者 ID 欺诈的标准) 纳入其呼叫详细信息进行验证外,呼叫过滤应用还可以报告拒绝来电的原因,在获得许可的前提下,这些应用还可以查看电话是否通向或来自用户联系人中的号码。应用还可以自定义系统提供的呼叫后屏幕 (post call screen),方便用户执行诸如 “将呼叫方标记为骚扰电话” 或 “添加到联系人” 之类的操作。我们将在近期与大家分享更多这方面的信息。
STIR / SHAKEN 状态https://developer.android.goo...
呼叫后屏幕 (post call screen)
https://developer.android.goo...
五、Neural Networks API 的新算子和控制
激活函数控制着神经网络中节点的输出。Google AI 团队发现了一个 swish 激活函数,它可以在相当多样的任务中带来更快的训练速度和更高的准确度。现在我们将该函数的一个计算有效版本,hard-swish 算子,加入到了 Android 11 中。这个算子在加速下一代设备上视觉模型 (如 MobileNetV3) 中至关重要,该模型也是许多迁移学习用例的基础。另外,新增的控制算子使得支持分支和循环的更高级的机器学习模型成为可能。我们还添加了新的运行控制,以帮助您最大程度地减少常见用例的延迟: Asynchronous Command Queue API 减少了运行小型链接模型时的开销。请参见 NDK 样例代码了解如何使用这些新 API。
swish 激活函数https://arxiv.org/pdf/1710.05...
MobileNetV3
https://ai.googleblog.com/201...
NDK 样例代码
https://github.com/android/nd...
一、摄像头和麦克风的前台服务类型
在 Android 10 中,我们引入了清单属性 foregroundServiceType,以进一步明晰特定用例的适用范围。最初,应用可以选择 “位置” 和其他几种类型。现在,我们在 Android 11 中添加了两种新类型: “摄像头” 和 “麦克风”。如果您的应用要从前台服务访问摄像头或麦克风数据,则需要将对应的 foregroundServiceType 值添加到清单中。
二、分区存储的更新
我们一直在致力于更好地保护外部存储上的应用和用户数据。在这个版本中,我们带来了进一步的强化和更改,比如我们现在支持将文件从旧模型迁移到新的分区存储模型,并且改善了缓存文件的管理方式。阅读官方文档了解更多信息,并请留意后续更新中的更多增强功能。
foregroundServiceType
https://developer.android.goo...官方文档: Android 11 中的存储更新
https://developer.android.goo...官方文档:Android 11 中的隐私权
https://developer.android.goo...
一、同步 IME 切换效果
这是一组全新的 API,让您可以在 IME (输入法编辑器,也叫软键盘) 和系统栏进出屏幕时同步调整应用中的内容,从而更轻松地创建出自然、直观、高品质的 IME 切换效果。为了确保切换时做到逐帧精确,新的边衬区动画监听器 (Insets Animation Listener) 会在 IME 或系统栏移动时逐帧告知应用边衬区的变化。此外,应用可以通过 WindowInsetsAnimationController API 控制 IME 和系统栏切换效果。由应用控制 IME 的切换效果可以让 IME 更精准地与应用 UI 同步,比如配合过度滚动 UI 时的动画。请上手体验这些新的 IME 切换效果,并告诉我们您还想要支持哪些其他切换效果。
新的边衬区动画监听器 (Insets Animation Listener)
https://developer.android.goo...WindowInsetsAnimationController
https://developer.android.goo...
二、可变刷新率
应用和游戏现在可以为其窗口设置首选帧率。大多数 Android 设备以 60Hz 的刷新率更新屏幕,但是某些设备支持多种刷新率,例如 90Hz 和 60Hz,并可在运行时切换。在这些设备上,系统会基于首选帧率来为应用选择最佳刷新率。您可以通过 SDK 和 NDK 来使用本 API。请前往官方文档了解更多信息。
设置首选帧率https://developer.android.goo...
三、重启后恢复
Android 11 改进了夜间定时 OTA 软件更新的体验。和以往版本的 Android 一样,设备需要重启才能应用 OTA 更新,现在有了重启后恢复,应用得以在 OTA 重启后访问可信凭据加密 (Credential Encrypted) 存储,而无需用户解锁设备。这样应用就得以立刻恢复正常功能,并且继续正常接收消息——由于 OTA 更新往往被定时在夜间执行,这时设备无人操作,因此重启后恢复功能就十分必要了。应用依然可以支持直接启动 (Direct Boot),从而在所有类型的重启后立刻访问设备加密 (Device Encrypted) 存储。请在您的下一个开发者预览版 OTA 更新时点击 "在凌晨 2 点后重启" 来体验一下重启后恢复功能吧。
四、模拟器中的摄像头支持
Android 模拟器现在可以模拟前置和后置摄像头。后置摄像头支持 Camera2 API HW Level 3 (包括 YUV 再处理和 RAW 捕获)。它是完全符合 CTS 第 3 级要求的设备,可用于测试高级功能,例如 ZSL 和 RAW / DNG 支持。前置摄像头通过逻辑摄像头 (一个逻辑设备及两个隐藏的物理设备) 支持 FULL HW 级别。它强调逻辑摄像头的支持,对应的物理设备则包括窄视角和宽视角摄像头。有了模拟摄像头的支持,您可以构建并测试 Android 11 中新增的任何摄像头功能。我们会在近期公布更多详细信息。
HW LEVEL_3 和 FULL 级别
https://source.android.google...
在推出新的平台版本时,进一步通过推进应用兼容性来让用户使用更快速、更流畅的 Android 体验 。在 Android 11 中,添加了新的流程、工具以及发布里程碑版本,以最大程度地减少平台更新带来的影响,让开发者们更轻松地完成更新。
通过这次发布的开发者预览版 2,在发布路线上更进一步迈向 Beta 版本。
在推出平台稳定版本后,就意味着系统行为、非 SDK 灰名单和 API 已经处于完成状态。现在,可以在 Pixel 2、3、3a 或 4 设备以及 Android 模拟器上开始进行兼容性测试。只需刷新系统版本,安装当前版本的应用,然后测试其完整流程即可,无需更改应用的 targetSdkVersion。
为了帮助进行测试,安卓此次将多项重大变更设定为可逐一开启/关闭。可以通过开发者选项或 adb 来强制启用或禁用它们,前往官方文档了解更多信息。
官方文档: 发布日程
https://developer.android.goo...
行为变更
https://developer.android.goo...
官方文档:打开或关闭变化项目
https://developer.android.goo...
Android 11 中有关限制非 SDK 接口的更新
https://developer.android.goo...