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 可以让您的随行移动体验更加流畅,让您随时与周边环境、朋友、家人互动并满足工作的需要

新的屏幕类型  - 设备厂商们也在持续进行创新,将新的屏幕形态投入市场,包括挖孔屏和瀑布屏。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 2、3、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 上看到大家的应用!

尾声

如果你想成为一个优秀的 Android 开发人员,请集中精力,对基础和重要的事情做深度研究。

对于很多初中级Android工程师而言,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长且无助。 整理的这些架构技术希望对Android开发的朋友们有所参考以及少走弯路,本文的重点是你有没有收获与成长,其余的都不重要,希望读者们能谨记这一点。

这里,笔者分享一份从架构哲学的层面来剖析的视频及资料分享给大家梳理了多年的架构经验,筹备近6个月最新录制的,相信这份视频能给你带来不一样的启发、收获。

Android进阶学习资料库

小结

有了这么多优秀的开发工具,可以做出更高质量的Android应用。

当然了,“打铁还需自身硬”,想要写出优秀的代码,最重要的一点还是自身的技术水平,不然用再好的工具也不能发挥出它的全部实力。

在这里我也分享一份大佬自己收录整理的Android学习PDF+架构视频+面试文档+源码笔记,还有高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料这些都是我闲暇还会反复翻阅的精品资料。在脑图中,每个知识点专题都配有相对应的实战项目,可以有效的帮助大家掌握知识点。

总之也是在这里帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!

总之也是在这里帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!

  • 24
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值