Android 11 正式发布 | 开发者们的舞台已就绪

做者 / Stephanie Cuthbertson,产品管理总监html

Android 11 来了!今天咱们将源码推送至 Android 开源项目 (AOSP),正式为你们带来最新版本的 Android。咱们在打造 Android 11 时,重点关注了三个主题: 以人为本 的沟通方式、让用户快速访问和 灵活控制 全部智能设备,以及让用户有更多方式控制设备上的数据如何共享的 隐私安全 。请阅读咱们的 官方博客文章 了解详情。java

对于开发者来讲,Android 11 带来了大量的新功能,包括会话通知、设备和媒体控制、单次权限、加强的 5G 支持、IME 切换效果等,欢迎你们积极尝试。为了帮助您更快地推动开发工做,咱们还添加了新的工具,如兼容性开关、ADB 增量安装、应用退出缘由 API、数据访问审核 API、Kotlin 可空性注解等。这些工做都是为了让开发者们能喜好 Android 11,咱们很是期待在上面看到您的做品!android

正式版本的 Android 11 也即将在您身边的设备上闪亮登场,Pixel 二、三、3a、4 和 4a 系列设备今天就能开始更新。请访问 Android 11 开发者网站 了解详情。git

以人为本、灵活控制与隐私安全

以人为本

Android 11 致力于凸显人的要素,且善于沟通。咱们重塑了您在手机上进行沟通的方式,也让操做系统能识别出那些对您来讲更重要的人,让您能更快速地和他们联系。对于开发者来讲,Android 11 能够帮助您在应用中实现更深刻的会话和更个性化的互动体验。github

  • 会话通知 会显示在通知栏顶部的专门区域,其设计更凸显联系对象,且提供了会话特定的操做,例如以 Bubbles 的形式打开聊天、在主屏幕中建立会话快捷方式,以及设置提醒。
  • Bubbles  可让用户在手机上进行多任务切换时依然保持对话可见而且可交互。消息和聊天应用能够经过基于通知的 Bubbles API,在 Android 11 上提供这种全新体验。
  • 键盘提示整合功能 可让自动填写应用以及 IME (输入法编辑器) 在 IME 建议栏中安全地向用户提供基于上下文的实体和字符串,使得输入更加便利。

△ Bubbles 和以人为本的会话

△ Bubbles 和以人为本的会话api

灵活控制

Android 11 让用户们得以快速访问全部的智能设备,并集中控制它们。开发者们则能够经过全新的 API 来帮助用户控制智能设备和管理媒体播放:缓存

  • 设备控制 ( Device Controls ) 让用户得以更快、更轻松地访问和控制他们链接的设备。只需长按电源按钮就能够调出设备控制菜单,一站式完成设备控制。应用也能够经过新的 API 出如今这个控制菜单中。详细信息请访问 官方文档
  • 媒体控制 ( Media Controls ) 让用户得以更快捷地切换音频和视频内容的播放设备——不管是耳机、麦克风仍是电视。详细信息请访问官方文档


△ 设备控制和媒体控制安全

隐私安全

在 Android 11 中,咱们为用户带来了更高的掌控能力,让他们能更好地管理敏感权限。咱们还会经过更快速的更新来持续确保设备安全。网络

单次受权  - 用户如今能够授予应用一次性的权限来访问设备的麦克风、摄像头或者位置信息。应用下次被使用时须要再次请求权限。详细信息请访问 官方文档并发

Android 11 中的单次受权对话框

△ Android 11 中的单次受权对话框

后台位置  - 想访问后台位置信息如今须要用户在授予运行时权限外进行更进一步的操做。若是您的应用须要访问后台位置信息,系统会要求您必须先请求前台位置权限。您能够经过 单独的权限申请 来进一步要求访问后台位置信息,系统会将用户带到设置页面 (Settings) 中完成受权操做。

另外须要注意的是,咱们在今年二月宣布,Google Play 开发者须要得到批准后才可让应用在后台访问位置信息,以防止滥用。如今咱们为开发者提供更长的时间来作出修改,在 2021 年以前咱们不会强行要求现有的应用遵照本政策。详细信息请访问 官方文档

权限自动重置  - 若是用户在很长一段时间里未使用某应用,Android 11 将 "自动重置" 全部与该应用关联的运行时权限并通知用户。在用户下次使用该应用时,应用能够再次请求权限。详细信息请访问 官方文档

分区存储  - 咱们一直在努力更好地保护外部存储上的应用和用户数据,还加入了更多的改进以便让开发者更轻松地进行迁移。详细信息请访问 官方文档

Google Play 系统更新  - 自去年发布以来,Google Play 系统更新让咱们能更快速地更新操做系统核心组件,并覆盖 Android 生态系统中的众多设备。在 Android 11 中,可更新的模块数量增长了一倍有余,新增的 12 个可更新模块,为用户和开发者带来更好的隐私性、安全性和一致性。

BiometricPrompt API  - 开发者如今能够经过 BiometricPrompt API 来指定其应用所需的生物识别身份验证强度类型,用来解锁或者访问应用中的敏感内容。为了向下兼容,咱们也将这些功能加入到了 Jetpack Biometric 开发库 中。随着工做的进展,咱们会为你们带来进一步的更新。

身份认证 API ( Identity Credential API ) - 这个 API 会带来全新的使用场景,支持包括驾驶执照、国民身份证和数字身份证。咱们正在与各政府机构和行业伙伴合做,以确保 Android 11 为数字化身份认证体验作好准备。

这里 阅读有关 Android 11 隐私功能的详细信息。

实用创新

更强的 5G 支持  - Android 11 可让开发者利用 5G 网络更快的速度和更低的延迟。您能够知晓用户什么时候 链接到 5G 网络,查看 链接是否处于计费状态,而且 估测链接的带宽。为了帮助您即刻打造 5G 体验,咱们也在 Android Emulator 中加入了 5G 支持。请访问 5G 开发者网页,了解如何在 Android 上使用 5G 功能。

△ 将高速体验带出家门,5G 可让您的随行移动体验更加流畅,让您随时与周边环境、朋友、家人互动并知足工做的须要

△ 将高速体验带出家门,5G 可让您的随行移动体验更加流畅,让您随时与周边环境、朋友、家人互动并知足工做的须要

新的屏幕类型  - 设备厂商们也在持续进行创新,将新的屏幕形态投入市场,包括挖孔屏和瀑布屏。Android 11 已经在平台中增长了对这些屏幕的支持,并提供了相应的 API 方便您优化应用。您能够经过现有的 Display Cutout API 来管理挖孔屏和瀑布屏。您能够经过设置 新的窗口布局属性 来使用整个瀑布屏,并经过 瀑布屏边衬区) (insets) API 来管理屏幕边缘附近的互动。

呼叫过滤服务  - Android 11 能够帮助呼叫过滤应用更好地管理骚扰电话。应用在呼叫详细信息中能够获取来电的 STIR/SHAKEN) 验证状态 (这个标准能够防止来电 ID 欺诈),并能报告拒接来电的缘由。应用还能够自定义系统提供的 呼叫后屏幕 (post call screen),方便用户执行诸如 "将呼叫方标记为骚扰电话" 或 "添加到联系人" 之类的操做。

优化与品质

操做系统弹性  - 在 Android 11 中,咱们经过对内存回收操做 (好比根据 RSS HWM 阈值强制用户没法感知的进程重启) 进行微调,使操做系统总体更具动态性和弹性。另外,为了改善性能和内存的使用,Android 11 还增长了 Binder 缓存,经过缓存那些检索相对静态数据的系统服务,优化了使用率高的 IPC 调用。Binder 缓存还经过减小 CPU 时间延长了电池寿命。

同步 IME 切换效果  - 这是一组全新的 API,让您能够在 IME (输入法编辑器,也叫软键盘) 和系统栏进出屏幕时同步调整应用中的内容,从而更轻松地建立出天然、直观、流畅的 IME 切换效果。为了确保切换时作到逐帧精确,新的 WindowInsetsAnimation.Callback API 会在系统栏或 IME 移动时逐帧告知应用边衬区的变化。此外,您能够经过新的 WindowInsetsAnimationController API 控制系统 UI,包括系统栏、IME、沉浸模式等。阅读 这篇博文 了解更多。


△ 左侧示意: 经过边衬区动画监听器实现 IME 同步切换效果 右侧示意: 经过 WindowInsetsAnimationController 实现应用驱动的 IME 体验

HEIF 动画可绘制对象  - ImageDecoder API 如今容许您解码和渲染存储在 HEIF 文件中的图像序列动画,方便您引入高品质的素材,同时最大程度地减小流量消耗和 APK 尺寸。相对于 GIF 动画,HEIF 图像序列能够显著减少文件尺寸。

原生图像解码器  - 应用可使用新的 NDK API 来经过原生代码解码和编码图像 (如 JPEG、PNG、WebP),以便进行图形或后期处理,并且由于您无需捆绑外部代码库,从而得以保持较小的 APK 尺寸。原生解码器还能够从 Android 持续的平台安全更新中获益。咱们提供了 NDK 样例代码 做为使用参考。

MediaCodec 中的低延迟视频解码  - 低延迟视频对于 Stadia 等实时视频流应用和服务相当重要。支持低延迟播放的视频编解码器会在解码开始后尽快返回流的第一帧。应用可使用新 API 来针对特定编解码器 检查) 和 配置 低延迟播放。

可变刷新率  - 应用和游戏如今能够经过 新的 API) 为其窗口设置首选帧率。大多数 Android 设备以 60Hz 的刷新率更新屏幕,可是某些设备支持多种刷新率,例如 90Hz 和 60Hz,并可在运行时切换。在这些设备上,系统会基于首选帧率来为应用选择最佳刷新率。您能够经过 SDK 和 NDK 来使用该 API。详细信息请访问 官方文档

动态资源加载器  - Android 11 提供了一个新的公开 API 来让应用在运行时动态加载资源和素材。经过 Resource Loader 框架,您能够在应用或游戏中包含一套基本资源,而后在运行时根据须要加载其余资源,或更改已加载的资源。

Neural Networks API (NNAPI) 1.3  - 咱们持续增长算子和控制,以支持 Android 设备上的机器学习。为了优化常见的使用场景,NNAPI 1.3 增长了优先级和超时、内存域 (memory domains) 以及异步指令队列的 API。新的算子支持包含有符号整数非对称量化以及分支和循环的高级模型,hard-swish 算子则能够用于加速下一代设备上视觉模型 (如 MobileNetV3)。

开发者体验

应用兼容性工具  - 咱们努力将大多数 Android 11 行为变动设置为可选择开启,从而最大限度地减小对兼容性带来的影响,除非您将应用的 targetSdkVersion 设置为 30,不然这些变动不会生效。若是您是经过 Google Play 发布应用,则有一年多的时间来选择支持这些变动,但咱们建议尽早开始测试。为了帮助您进行测试,Android 11 容许您单独开启或关闭其中的许多变动。详细信息请访问 官方文档

应用退出缘由  - 了解应用退出的缘由以及当时的状态十分重要——包括应用所在的设备类型、内存配置和运行场景。Android 11 经过 退出缘由 API 让这个事情变得更加容易: 您可使用该 API 来查看应用最近退出的 详细信息

数据访问审核  - 数据访问审核可让您更好地了解本身的应用访问用户数据的状况,以及访问来自的用户流程。例如,它能帮您识别无心的私有数据访问,不论其来自于您本身的代码仍是其余 SDK。详细信息请访问 官方文档

ADB 增量安装 ( ADB Incremental ) - 在开发过程当中使用 ADB (Android Debug Bridge) 安装体积较大的 APK 可能会拖慢速度,影响您的工做效率,对 Android 游戏开发者而言尤为如此。Android 11 带来了 ADB Incremental,如今从开发机向 Android 11 设备上部署大型 APK (2GB 以上) 的速度能够提升 10 倍之多。详细信息请访问 官方文档

Kotlin 可空性注解  - Android 11 为公共 API 中的更多方法增长了可空性注解。并且,它将一些现有的注解从警告升级为错误。这能够帮助您在构建时就发现问题,不用等到运行时才出错。阅读 此文 了解更多。

让您的应用为 Android 11 作好准备

Android 11 即将抵达用户手中,如今是时候 完成您的兼容性测试并发布更新 了。

请首先关注 针对全部应用的行为变动:

下面是首先须要关注的行为变动 (不管您应用的 targetSdkVersion 是多少): 

  • 单次权限  - 如今,用户能够为位置信息、设备麦克风和摄像头授予单次使用权限。详细信息请访问 官方文档
  • 外部存储访问权限  - 应用没法再访问外部存储空间中其余应用的文件。详细信息请访问 官方文档
  • Scudo Hardened Allocator  - 如今它是应用内原生代码的堆内存分配器。详细信息请访问 官方文档
  • 文件描述符排查器  - 此功能如今默认启用,以检测应用原生代码的文件描述符处理错误。详细信息请访问 官方文档:

Android 11 中还有许多 可选择支持的行为变动 - 您的应用若是针对新平台发布,才会受到影响。咱们建议在您发布应用的兼容版本后尽快评估这些变动。有关兼容性测试和工具的更多信息,请查看 Android 11 兼容性相关的资源,并访问 Android 11 开发者网站 了解技术细节。

使用新功能和 API 改进您的应用

准备就绪后,请深刻研究 Android 11 并了解您可使用的 新功能和 API。下面是一些您能够优先考虑的重点功能。

咱们推荐全部应用支持这些功能:

  • 深色主题  (自 Android 10 开始支持) - 经过添加 Dark Theme (深色主题) 或启用 Force Dark,确保为启用全系统深色主题的用户提供一致的体验。
  • 手势导航  (自 Android 10 开始支持) - 请支持手势导航,包括提供边到边的沉浸式体验,以及确保自定义手势与默认手势配合良好。详细信息请访问 官方文档:
  • 共享快捷方式  (自 Android 10 开始支持) - 想要接收共享数据的应用应该使用 共享快捷方式 API 来建立共享目标。想要发送共享数据的应用应确保使用 Android Sharesheet
  • 同步 IME 切换效果  - 使用新的 WindowInsets 和相关 API 为用户提供流畅的切换效果。详细信息请阅读 这篇博文
  • 新的屏幕类型  - 对挖孔屏或瀑布屏设备,请确保根据须要针对这些屏幕测试和调整您的内容。详细信息请访问 官方文档

咱们还推荐这些功能,若是它们和您的应用体验契合的话:

  • 会话  - 消息和通讯应用能够经过提供长效 共享快捷方式 和在通知中呈现对会话来融入用户的对话体验。详细信息请访问 官方文档
  • 聊天气泡 ( Bubbles ) - Bubbles 能够在多任务切换时依然保持对话可见及可用。应用经过基于通知的 Bubbles API 来实现此功能。
  • 5G  - 若是您的应用或内容能够利用 5G 更快的速度和更低的延迟,请参考咱们的 开发者资源,开始构建 5G 体验。
  • 设备控制  - 若是您的应用支持外部智能设备,请确保这些设备能够重新的 Android 11 设备控制菜单访问。详细信息请访问 官方文档
  • 媒体控制  - 对于媒体应用,咱们建议支持 Android 11 媒体控制,这样用户就能够从快速设置 (Quick Settings) 菜单中管理媒体播放。详细信息请访问 官方文档

您能够前往 developer.android.google.cn/11 了解更多有关 Android 11 功能的信息。

Android 11 即将出如今您身边的设备上!

Android 11 将从今天开始在选定的 Pixel、一加、小米、OPPO 和 realme 手机上陆续推出,将来几个月将有更多合做伙伴推出以及升级设备。若是您拥有 Pixel 二、三、3a、4 或 4a 系列手机,包括那些参加了今年 Beta 测试计划的手机,请关注即将到来的 OTA 更新!

Pixel 设备的 Android 11 出厂系统映像也能够经过 Android Flash Tool 得到,您也能够在 这里 下载。和以往同样,您能够经过 Android Studio 中的 SDK Manager 得到最新的 Android 模拟器系统映像。若是您想在其余支持 Treble 的兼容设备上进行更普遍的测试,能够在 这里 获取通用系统映像 (GSI)。

若是您须要 Android 11 的源代码,能够在 Android 开源项目 repo 的 Android 11 分支下的 这个地址 获取。

下一步是什么?

咱们很快会关闭预览版问题反馈通道,并清除针对开发者预览版或 Beta 版的开放 Bug,若是您再次发现了曾经在预览版时期提交过的问题,请在 AOSP 问题反馈表单中针对 Android 11 提交新的错误报告,但愿您继续为咱们提供反馈意见!

再次感谢今年参与预览计划的众多开发者和早期体验者!你们为咱们提供了很是好的反馈,助力咱们打磨产品。正是你们提交的数以千计的问题报告将 Android 11 打形成了一个更好、更适合用户的平台。

期待在 Android 11 上看到你们的应用!

相关文章
相关标签/搜索