作者 / Dave Burke, VP of Engineering
对世界上的许多人来说,过去的这几个月可以说非常艰难。Google 的 Android 团队成员遍布世界各地,我们也和你们中的许多人一样,在努力适应这样的局面。我们的开发者们在这样的环境下依然给 Android 11 带来了诸多宝贵的反馈,我们对此深表感谢。也衷心希望每一个人,以及家人和同事都能平安健康。
正如许多人如今依然在尽可能推进工作一样,我们也为大家带来了 Android 11 的一个新里程碑版本,欢迎大家上手体验。它仍然属于早期版本,但您会发现这个版本的 OS 已经带来了许多全新的体验,包括无缝流畅的 5G 连接、适配最新屏幕的界面,以及更智能的键盘和更便捷的消息体验,等等。
本文分享了开发者预览版 2 中不容错过的亮点,您也可以访问 Android 11 开发者网站阅读详细信息。今天发布的版本仅面向开发者,并不面向一般用户,因此我们依然仅提供手动下载和刷机的安装方式,针对的设备包括 Pixel 2、3、3a 以及 4。我们还提供了更简便的一种安装方式——您可以通过 Android 刷机工具获取这个版本。如果您的设备已经在运行开发者预览版 1 或者 1.1,我们也提供 OTA 更新。
感谢每一位分享宝贵反馈的开发者,也请继续和我们分享您的想法。
Android 11 开发者网站
https://developer.android.google.cn/11
手动下载和刷机
https://developer.android.google.cn/preview/download
Android 刷机工具
https://flash.android.com/
分享您的想法
https://developer.android.google.cn/preview/feedback
全新体验
5G 状态 API - DP2 增加了 5G 状态 API,可以让您快速检查用户当前是否连接至 5G New Radio (新空口) 或 Non-Standalone (非独立组网模式) 网络。您可以使用它来展示您的应用的 5G 体验,或是在用户连接成功后进行品牌宣传。您可以将此 API 与 5G 动态计费状态 API、带宽估测 API 以及现有的网络连接 (Connectivity Manager) API 结合使用,以充分活用 5G 更高的速度和更低的延迟。
动态计费状态 API
https://developer.android.google.cn/reference/android/net/NetworkCapabilities.html#NET_CAPABILITY_NOT_METERED
带宽估测 API
https://developer.android.google.cn/reference/android/net/NetworkCapabilities.html#getLinkDownstreamBandwidthKbps()
现有的网络连接 (Connectivity Manager) API
https://developer.android.google.cn/reference/android/net/ConnectivityManager
可折叠设备的铰链角度 - 针对可折叠设备,开发者们提出的头号要求是通过 API 获取设备的屏幕折叠角度。Android 11 现在支持铰链角度传感器,应用可以直接查询,或通过新的 AndroidX API 获取精确的铰链角度,从而为可折叠设备打造自适应体验。
铰链角度传感器
https://developer.android.google.cn/reference/android/hardware/Sensor#STRING_TYPE_HINGE_ANGLE
呼叫过滤服务的改进 - 为了帮助用户管理语音自动电话 (robocall),我们添加了新的 API,以使呼叫过滤应用可以为用户提供更多帮助。除了将来电的 STIR / SHAKEN 状态 (均为防范呼叫者 ID 欺诈的标准) 纳入其呼叫详细信息进行验证外,呼叫过滤应用还可以报告拒绝来电的原因,在获得许可的前提下,这些应用还可以查看电话是否通向或来自用户联系人中的号码。应用还可以自定义系统提供的呼叫后屏幕 (post call screen),方便用户执行诸如 “将呼叫方标记为骚扰电话” 或 “添加到联系人” 之类的操作。我们将在近期与大家分享更多这方面的信息。
STIR / SHAKEN 状态
https://developer.android.google.cn/reference/android/telecom/Call.Details.html#getCallerNumberVerificationStatus()
呼叫后屏幕 (post call screen)
https://developer.android.google.cn/reference/android/telecom/TelecomManager.html#ACTION_POST_CALL
Neural Networks API 的新算子和控制 - 激活函数控制着神经网络中节点的输出。Google AI 团队发现了一个 swish 激活函数,它可以在相当多样的任务中带来更快的训练速度和更高的准确度。现在我们将该函数的一个计算有效版本,hard-swish 算子,加入到了 Android 11 中。这个算子在加速下一代设备上视觉模型 (如 MobileNetV3) 中至关重要,该模型也是许多迁移学习用例的基础。另外,新增的控制算子使得支持分支和循环的更高级的机器学习模型成为可能。我们还添加了新的运行控制,以帮助您最大程度地减少常见用例的延迟: Asynchronous Command Queue API 减少了运行小型链接模型时的开销。请参见 NDK 样例代码了解如何使用这些新 API。
swish 激活函数
https://arxiv.org/pdf/1710.05941.pdf
MobileNetV3
https://ai.googleblog.com/2019/11/introducing-next-generation-on-device.html
NDK 样例代码
https://github.com/android/ndk-samples/tree/master/nn-samples/
隐私和安全
我们将添加更多功能以确保用户安全,提高透明度和加强管控。请大家在自己的应用中尝试这些新功能,并把您的想法告诉我们。
摄像头和麦克风的前台服务类型 - 在 Android 10 中,我们引入了清单属性 foregroundServiceType,以进一步明晰特定用例的适用范围。最初,应用可以选择 “位置” 和其他几种类型。现在,我们在 Android 11 中添加了两种新类型: “摄像头” 和 “麦克风”。如果您的应用要从前台服务访问摄像头或麦克风数据,则需要将对应的 foregroundServiceType 值添加到清单中。
分区存储的更新 - 我们一直在致力于更好地保护外部存储上的应用和用户数据。在这个版本中,我们带来了进一步的强化和更改,比如我们现在支持将文件从旧模型迁移到新的分区存储模型,并且改善了缓存文件的管理方式。阅读官方文档了解更多信息,并请留意后续更新中的更多增强功能。
前往官方文档了解更多 Android 11 隐私功能。
foregroundServiceType
https://developer.android.google.cn/preview/privacy/foreground-service-types
官方文档: Android 11 中的存储更新
https://developer.android.google.cn/preview/privacy/storage
官方文档: Android 11 中的隐私权
https://developer.android.google.cn/preview/privacy
优化与品质
同步 IME 切换效果 - 这是一组全新的 API,让您可以在 IME (输入法编辑器,也叫软键盘) 和系统栏进出屏幕时同步调整应用中的内容,从而更轻松地创建出自然、直观、高品质的 IME 切换效果。为了确保切换时做到逐帧精确,新的边衬区动画监听器 (Insets Animation Listener) 会在 IME 或系统栏移动时逐帧告知应用边衬区的变化。此外,应用可以通过 WindowInsetsAnimationController API 控制 IME 和系统栏切换效果。由应用控制 IME 的切换效果可以让 IME 更精准地与应用 UI 同步,比如配合过度滚动 UI 时的动画。请上手体验这些新的 IME 切换效果,并告诉我们您还想要支持哪些其他切换效果。
新的边衬区动画监听器 (Insets Animation Listener)
https://developer.android.google.cn/reference/android/view/WindowInsetsAnimation.Callback
WindowInsetsAnimationController
https://developer.android.google.cn/reference/android/view/WindowInsetsAnimationController
△ 左侧示意: 通过边衬区动画监听器实现 IME 同步切换效果
右侧示意: 通过 WindowInsetsAnimationController 实现应用驱动的 IME 体验
可变刷新率 - 应用和游戏现在可以为其窗口设置首选帧率。大多数 Android 设备以 60Hz 的刷新率更新屏幕,但是某些设备支持多种刷新率,例如 90Hz 和 60Hz,并可在运行时切换。在这些设备上,系统会基于首选帧率来为应用选择最佳刷新率。您可以通过 SDK 和 NDK 来使用本 API。请前往官方文档了解更多信息。
设置首选帧率
https://developer.android.google.cn/reference/android/view/Surface#setFrameRate(float,%20int)
重启后恢复 - 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.cn/devices/camera/versioning#camera_api2
应用兼容性
在推出新的平台版本时,我们和开发者一道通过推进应用兼容性来让用户使用更快速、更流畅的 Android 体验 。在 Android 11 中,我们添加了新的流程、工具以及发布里程碑版本,以最大程度地减少平台更新带来的影响,让开发者们更轻松地完成更新。
通过这次发布的开发者预览版 2,我们在发布路线上更进一步迈向 Beta 版本。因此,现在是时候开始进行兼容性测试,并确定您需要做的工作了。我们建议您尽早开始,以便在 Android 11 Beta 1 中发布与其兼容的更新版本。这样一来,您就可以从 Android 11 Beta 更大的用户群体中获取反馈。
在推出平台稳定版本后,就意味着系统行为、非 SDK 灰名单和 API 已经处于完成状态。现在,请您规划最终的兼容性测试,并尽快发布完全兼容的应用、SDK 或库,从而为 Android 11 的最终发布做好准备。阅读官方文档了解发布日程的详细信息。
您可以在 Pixel 2、3、3a 或 4 设备以及 Android 模拟器上开始进行兼容性测试。只需刷新系统版本,安装当前版本的应用,然后测试其完整流程即可。现在无需更改应用的 targetSdkVersion。请务必检查可能影响您的应用的行为变更,并测试其带来的影响。
为了帮助您进行测试,我们将多项重大变更设定为可逐一开启/关闭。您可以通过开发者选项或 adb 来强制启用或禁用它们,前往官方文档了解更多信息。另外,请参阅受限制的非 SDK 接口灰名单,您也可以启用或者禁用它们。
官方文档: 发布日程
https://developer.android.google.cn/preview/overview
行为变更
https://developer.android.google.cn/preview/behavior-changes-all
官方文档: 打开或关闭变化项目
https://developer.android.google.cn/preview/test-changes
Android 11 中有关限制非 SDK 接口的更新
https://developer.android.google.cn/preview/non-sdk-11
△ 开发者选项中的应用兼容性开关
即刻开始体验 Android 11
不论是想体验 Android 11 的功能、测试应用还是和我们分享您的反馈,都可以从这次的开发者预览版开始。您现在可以下载系统映像并刷入 Pixel 2、3、3a 或 4 设备中,或者通过 Android Studio 设置 Android 模拟器。接下来,使用 Android 11 预览 SDK 以及工具升级您的 Android Studio 环境,您可以访问官方文档查看设置说明。
分享使用反馈
https://issuetracker.google.com/issues/new?component=190602&template=1407746
获取系统映像
https://developer.android.google.cn/preview/download.html
设置说明
https://developer.android.google.cn/preview/setup-sdk
您的反馈一如既往的重要,所以请务必和我们分享您的想法——我们越早听到您的声音,就能整合越多的反馈。如果您在测试中发现了问题,请报告给我们。
分享您的想法
https://developer.android.google.cn/preview/feedback.html
报告问题
https://issuetracker.google.com/issues/new?component=190602&template=1407746
点击屏末 | 阅读原文 | 前往 Android 11 开发者网站了解详情
想了解更多 Android 内容?
在公众号首页发送关键词 "Android",获取相关历史技术文章;
在公众号首页发送关键词 "ADS",获取开发者峰会演讲中文字幕视频;
还有更多疑惑?欢迎点击菜单 "联系我们" 反馈您在开发过程中遇到的问题。
推荐阅读