作者 / Dave Burke, VP of Engineering
几周前,我们发布了 Android 11 的第一个 Beta 版,该版本强调了三个主题: 以人为本、灵活控制以及隐私安全。正如我们在发布 Beta 1 时强调的那样,我们正在使 Android 更加以人为本、更善于沟通,帮助用户控制他们的智能设备,让他们对敏感权限具有更多掌控权。开发者可以利用聊天 (Conversations)、Bubbles、设备控制 (Device Controls) 和媒体控制 (Media Controls) 等 API 将这些体验整合到自己的应用中。
Android 11 Beta 版
https://developer.android.google.cn/android11
聊天 (Conversations)
https://developer.android.google.cn/preview/features/conversations
Bubbles
https://developer.android.google.cn/guide/topics/ui/bubbles
设备控制 (Device Controls)
https://developer.android.google.cn/preview/features/device-control
媒体控制 (Media Controls)
https://developer.android.google.cn/preview/features/media-controls
Android 11 的第二个 Beta 版现已推出,供您试用。这也意味着我们已经抵达平台稳定性里程碑,即 Android 11 的 API 和行为已最后敲定。对于开发者来说,是时候进行最终兼容性更新,确保在 Android 11 正式版 (将于第三季度末发布) 之前完成发布。
您可以在此处注册进行 OTA 更新,在 Pixel 2、3、3a 和 4 系列设备上立即获得 Beta 2,也可以手动下载系统映像。如果您先前安装了 Beta 1,将自动获得 OTA 更新。感谢大家一直以来提供的反馈,请继续与我们分享您的使用感想!
参与 Android Beta 测试
https://www.google.com/android/beta
Google Pixel 映像下载
https://developer.android.google.cn/preview/download
提交反馈
https://developer.android.google.cn/preview/feedback.html
平台稳定性
Beta 2 将 Android 11 推进至 "平台稳定性" 里程碑,这是我们今年根据大家的反馈专为开发者新增的一个版本里程碑。
"平台稳定性" 里程碑
https://developer.android.google.cn/preview/overview#platform_stability
平台稳定性里程碑意味着现在所有面向应用的接口和行为都在 Android 11 中达到最终状态。这不仅包括最终 SDK 和 NDK API,还包括可能对应用造成影响的最终版系统行为和非 SDK 限制接口。因此从 Beta 2 起,您可以确信平台不会再出现更改,从而放心地发布兼容性更新。在此处详细了解发布时间表。
Android 11 发布时间表
https://developer.android.google.cn/preview/overview#timeline
由于平台现已稳定,我们鼓励所有应用和游戏开发者开始进行最终兼容性测试并在最终版本之前发布更新。
对于所有 SDK、库、工具和游戏引擎开发者而言,更为重要的是立即开始测试并尽快发布兼容更新,在收到更新之前,您的下游应用和游戏开发者可能无法进行兼容性更新操作。在您发布兼容更新后,请告知您的开发者!
平台稳定性和 Android 发布时间表
https://youtu.be/OzlhNZEAchQ
应用兼容性为何至关重要
对于 Android 而言,"应用兼容性" 意味着您的应用可在特定版本 (通常是最新版本) 的平台上正确运行。您可以立即在运行 Android 11 的设备或模拟器上安装您已经发布的应用,检查其兼容性。只需测试所有用户流程和功能,如果应用运行时的界面和行为都一切正常,即说明应用兼容!
听起来很简单,但有时要做很多工作。在每一个版本中,我们都会做一些必不可少的变更来改善隐私和安全性,以及提升操作系统的整体用户体验。有时,它们可能影响您的应用,因此重要的一点是查看行为变更并进行针对性的测试,然后向用户发布兼容更新。这是确保应用品质的一个基本且重要的操作。
行为变更
https://developer.android.google.cn/preview/behavior-changes-all
当用户更新到最新版本的 Android 后——无论他们是购买新设备还是在现有设备上安装更新——应用兼容性就会开始发挥作用。用户们会积极探索最新版本的 Android,并通过喜欢的应用体验全新的版本。如果应用无法正常工作,这对用户以及我们所有人来说都是重大的问题。
因此,在您准备更改应用的目标平台时,虽然有大量的新 API 和功能可供您使用,也有更多变更需要考虑,但您的首要工作是测试当前应用并发布兼容更新。
新 API 和功能
https://developer.android.google.cn/preview/features
在 Android 11 达到 Android 开源项目 (Android Open Source Project, AOSP) 的最终版本后,Pixel 及其他设备的更新将会开始,预计为第三季度末。现在,合作伙伴的多款设备也已处于公开预览状态,以支持您的兼容性测试。
Android 开源项目 (AOSP)
https://source.android.com/
在 Android 11 中简化应用兼容性工作
在每个版本中,我们都致力于减少您准备应用时需要完成的工作。在 Android 11 中,我们增加了新的流程、开发者工具和版本里程碑,以最大程度减少平台更新带来的影响并使应用更容易保持兼容。
最大限度地降低行为变更影响: 我们的目标始终如一,即在您将应用的 targetSdkVersion 设置为 Android 11 之前,尽可能将这些变更设置为可选项,最大程度减少平台变更对应用带来的影响。如果您通过 Google Play 分发应用,则将有一年以上的时间逐渐适用这些变更。
更轻松的测试和调试: 为了帮助您测试兼容性,我们将许多非兼容性变更设置为 "可关闭"。这意味着,您可以通过开发者选项或 adb 强制启用或禁用每一项更改。这样就无需为了一些基本测试而更改 targetSdkVersion 或重新编译您的应用。我们也简化了 Android Studio 自动化测试的流程。访问官方文档查看详细信息。
targetSdkVersion
https://developer.android.google.cn/distribute/best-practices/develop/target-sdk
测试应用与 Android 11 的兼容性
https://developer.android.google.cn/preview/test-changes
△ 开发者选项中的应用兼容性开关
对非 SDK 接口的限制: 为了帮助开发者逐步弃用非 SDK API,我们不断努力,更新了受限制的非 SDK 接口列表。一如既往,欢迎您提出反馈,并提交公开 API 替代接口的开发需求。
动态资源加载器: 在开发者们移除非 SDK 接口调用的同时,我们听到了来自卓盟科技等开发者的一个需求: 提供一个公开 API 来在运行时动态加载资源和素材。现在,我们在 Android 11 中添加了 Resource Loader 框架,感谢向我们提出这些需求的开发者!
平台稳定性里程碑: 如前文所述,这是我们在版本发布流程中新增的一个里程碑,它为开发者提供了一个清晰的最终变更日期。这不仅包括最终 SDK/NDK API,还包括可能影响应用的最终内部 API 和系统行为。
受限制的非 SDK 接口列表
https://developer.android.google.cn/preview/non-sdk-11
提交公开 API 替代接口的开发需求
https://developer.android.google.cn/distribute/best-practices/develop/restrictions-non-sdk-interfaces#feature-request
Resource Loader 框架
https://developer.android.google.cn/reference/android/content/res/loader/package-summary.html
让您的应用为 Android 11 做好准备!
现在,Android 11 已经稳定,请尽快使您的应用与之兼容。操作方法如下。
要测试您当前的应用,首先了解会影响 Android 11 上所有应用的行为变更,查看应用在哪些方面会受影响。
行为变更: 所有应用
https://developer.android.google.cn/preview/behavior-changes-all
下面是首先需要关注的变更 (无论您应用的 targetSdkVersion 是多少):
单次权限 - 现在,用户可以为位置信息、设备麦克风和摄像头授予单次使用权限。详细信息请访问官方文档:
https://developer.android.google.cn/preview/privacy/permissions#one-time
外部存储访问权限 - 应用无法再访问外部存储空间中其他应用的文件。详细信息请访问官方文档:
https://developer.android.google.cn/preview/privacy/storage#other-apps-private-dirs
Scudo Hardened Allocator - 现在它是应用内原生代码的堆内存分配器。详细信息请访问官方文档:
https://developer.android.google.cn/preview/behavior-changes-all#scudo
文件描述符排错程序 - 此功能现在默认启用,以检测应用原生代码的文件描述符处理错误。详细信息请访问官方文档:
https://developer.android.google.cn/preview/behavior-changes-all#fdsan
记得在应用中测试库和 SDK 的兼容性。如果发现问题,请尝试更新该 SDK 至最新版本,或联系开发者寻求帮助。
接着,在您发布当前应用的兼容版本后,可以开始执行更新应用 targetSdkVersion 的流程。检查会影响 Android 11 应用的行为变更并尝试使用兼容性框架来帮助查明影响。
符合 Google Play 的目标 API 级别要求
https://developer.android.google.cn/distribute/best-practices/develop/target-sdk
更新应用目标并使用新 API 进行构建
https://developer.android.google.cn/preview/migration#setup_sdk
行为变更: 以 Android 11 为目标平台的应用
https://developer.android.google.cn/preview/behavior-changes-11
测试应用与 Android 11 的兼容性
https://developer.android.google.cn/preview/test-changes
下面是一些要重点测试的变更 (仅适用于 targetSdkVersion 30+):
分区存储 - 应用读取和写入文件时的新存储空间限制、新行为和新 API。详细信息请访问官方文档:
https://developer.android.google.cn/preview/privacy/storage#scoped-storage
后台位置 - 应用请求后台位置的方式以及用户授予权限的方式发生改变。详细信息请访问官方文档:
https://developer.android.google.cn/preview/privacy/location#request-background-location-separately
软件包可见性 - 应用查询其他已安装应用以及与之互动的方式发生改变。详细信息请访问官方文档:
https://developer.android.google.cn/preview/privacy/package-visibility
压缩的资源文件 - 如果应用包含压缩的 resources.arsc 文件,或者文件未在 4 字节边界对齐,则无法安装或更新应用。详细信息请访问官方文档:
https://developer.android.google.cn/preview/behavior-changes-11#compressed-resource-file
APK 签名方案 v2 - 现在必须使用 APK 签名方案 v2 或更高版本为应用签名。详细信息请访问官方文档:
https://developer.android.google.cn/preview/behavior-changes-11#minimum-signature-scheme
堆指针标记 - 对于 64 位进程,原生堆分配在指针的最高位字节具有一个标记集,应用不应修改该标记集。详细信息请访问官方文档:
https://developer.android.google.cn/preview/behavior-changes-11#heap-pointer-tagging
在测试过程中,留意应用中使用的受限非 SDK 接口并将其替换为等效的公开 SDK 接口。请访问官方文档了解受限的 API 接口:
https://developer.android.google.cn/preview/non-sdk-11
探索新功能和 API
准备就绪后,请深入研究 Android 11 并了解您可以构建的新体验。我们在发布 Android 11 Beta 1 的时候详细介绍了这些新功能,您还可以访问 Beta 版发布页面,观看 Android 团队成员们就自己所负责领域的最新变化发表的演讲。
Android 11 Beta 版
https://developer.android.google.cn/android11
Android 11 演讲视频
https://space.bilibili.com/64169458/channel/detail?cid=133709
Android Studio 中也添加了适用于 Android 11 的新功能,以改善您的生产效率和工作流程,例如 ADB Incremental (ADB 增量更新),它可以更快地安装较大的 APK,另外还在平台 API 上加入了更多的可空性注解。您可以下载最新的 Android Studio Beta 或 Canary 版尝试一下。请在官方文档查看如何针对 Android 11 配置 Android Studio。
ADB Incremental (ADB 增量更新)
https://developer.android.google.cn/preview/features#incremental
下载 Android Studio Beta 或 Canary 版
https://developer.android.google.cn/studio/preview
官方文档: 设置 Android 11 SDK
https://developer.android.google.cn/preview/setup-sdk
有关 Android 11 功能和 API 的完整详细信息,请访问 Android 11 开发者网站。
Android 11 开发者网站
https://developer.android.google.cn/11
如何获取 Beta 2?
非常简单!可以在官网注册,为 Pixel 2、3、3a 和 4 系列设备获取 Android 11 Beta OTA 更新。或者使用 Android Flash Tool 尝试简单的即时更新,我们还提供了可下载的系统映像。如果您没有 Pixel 设备,可以使用 Android Studio 中的 Android Emulator 或尝试 GSI 映像,在支持的 Treble 兼容设备上运行 Android 11。
注册参与 Android Beta 测试
https://www.google.com/android/beta
Android Flash Tool
https://flash.android.com/welcome?continue=%2Fpreview%2Fbeta2
Google Pixel 映像下载
https://developer.android.google.cn/preview/download
您的反馈一如既往的重要,因此,请与我们分享您的想法。您可以使用我们的问题反馈表单提交平台问题 (包括隐私和行为变更)、应用兼容性问题以及第三方 SDK 问题。感谢大家一直以来和我们分享的有效反馈!
提交反馈
https://developer.android.google.cn/preview/feedback.html
提交平台问题
https://issuetracker.google.com/issues/new?component=190602&template=1226573
提交应用兼容性问题
https://issuetracker.google.com/issues/new?component=190602&template=1227376
提交第三方 SDK 问题
https://issuetracker.google.com/issues/new?component=190602&template=1227583
Android 11 兼容性
在本周发布的 11 Weeks of Android 文章中,我们重点介绍了 Android 11 的兼容性,由于平台已到达稳定版本,本主题对所有开发者都很重要。
11 Weeks of Android
https://developer.android.google.cn/11weeksofandroid
我们将在微信和 Bilibili 上持续分享资源来帮助您完成兼容性测试,请保持关注以便第一时间获取这方面的更新!
Bilibili - Android 11
https://space.bilibili.com/64169458/channel/detail?cid=133709
推荐阅读
点击屏末 | 阅读原文 | 前往 Android 11 Beta 版官方网站