Android 11 开发者预览版本新特性

Android 11 Developer Preview


Android 11 开发者预览版本新特性

前几日,Google发布了Android 11 开发者预览版本,作为Android 11的第一个可见版本。在随后的半年中,还会再发布两个开发者预览版本、两个Beta发布版本和两个最终版本。下面是官方给出的时间计划:

Android 11 开发者预览版本新特性

本文将带大家一起去看一下,Android 11有哪些变化?

概述

Android 11以Android的早期版本为基础,添加了功能和更新,以确保用户安全,并增加透明度和控制力。开发者预览版能看到的变化主要集中在隐私、特性以及API。

隐私、特性和API的改变,会导致应用行为的改变。行文会根据这个顺序,先写隐私变化,再写特性和API的变化,最后写这些变化带来的应用行为的改变。

开发者预览版本的变化集中在隐私和安全、现有功能和用户体验,并没有看到重大变化和突出的新特性。如果只是关注Android 11的新特性,可以直接看特性和API变化部分。

隐私更新

强制范围存储

为了给开发人员更多的测试时间,面向Android 10(API级别29)或更低版本的应用仍可以请求requestLegacyExternalStorage属性。 此标志允许应用程序暂时退出与范围存储相关的更改,例如授予对不同目录和不同类型媒体文件的访问权限。

但是,当您将应用更新为Android 11时,将无法使用requestLegacyExternalStorage,并且没有其他可用选项提供退出功能。

媒体文件权限

为了在保留用户隐私的同时更轻松地访问媒体,Android 11添加了以下功能。

增加方法createWriteRequest()/createFavoriteRequest()/createTrashRequest()/createDeleteRequest()支持批量操作。

从Android 11开始,具有READ_EXTERNAL_STORAGE权限的应用程序可以使用直接文件路径和本机库读取设备的媒体文件。 这项新功能使您的应用程序可以与第三方媒体库更流畅地协作。

可以通过系统设置激活原生文件路径特性用于测试:System > Developer options > Feature flags,打开settings_fuse。

文件和目录权限限制

不在需要ACTION_OPEN_DOCUMENT_TREE和ACTION_OPEN_DOCUMENT intent action去请求Downloads、Android/data/、Android/obb/目录及子目录的权限。

存储相关的权限

运行时权限Storage更名为Files&Media。

如果您的应用以Android 11为目标,则WRITE_EXTERNAL_STORAGE权限和WRITE_MEDIA_STORAGE特权都不再提供任何其他访问权限。

全部文件权限

通过声明MANAGE_EXTERNAL_STORAGE权限,来获取共享存储的所有文件的读写权限。

单次权限

Android 11的授权对话框增加了"Only this time"的选项,供用户选择。如果用户选择了这个选项,你的应用只能获得临时的一次授权,有效期分别为:activity前台可见;前台服务持续运行。当activity变得不可见或者前台服务推出,授权就失效了。

Android 11不鼓励在特定权限组中重复请求权限。 如果应用程序在设备上的安装期间内,用户两次点击"拒绝"以获取特定权限,则此操作表示"不再询问"相应的权限组。

请求数据审核

为了使您的应用及其依赖项如何访问用户的私有数据更加透明,Android 11引入了数据访问审核。 通过从此过程中获得见解,您可以更好地识别和纠正潜在的意外数据访问。 您的应用程序可以注册AppOpsManager.AppOpsCollector的实例,该实例可以在每次数据访问发生时执行操作。

后台位置权限

Android 11引入了对应用程序如何请求后台位置权限以及用户如何授予其权限的更改。 具体更改取决于应用程序的目标SDK版本,但在Android 11上运行的所有应用程序均会受到影响。

如果您的应用定位到Android 11,则无法直接请求对背景位置的全天候访问。 相反,在需要后台位置的用例的情况下,请使用应用程序的UI来帮助用户了解您的应用程序为何需要此权限。

特性和API变化

隐私篇已经写过,主要就是增加了AppOpsManager.AppOpsCollector。

高性能图形调试层注入

应用程序现在可以将外部图形层(GLES,Vulkan)加载到本机应用程序代码中,以提供与可调试应用程序相同的功能,而不会产生性能开销。 使用GAPID之类的应用程序对应用程序进行性能分析时,此功能特别重要。 要分析您的应用,请在manifest文件中包含以下元数据元素:

Android 11 开发者预览版本新特性

媒体文件批量操作

MediaStore增加了几个API,增加用户便利性和设备访问连续性。

快捷回复

从Android 11开始,用户可以在快捷回复中插入图片和其它富媒体内容。

使用原始文件路径访问媒体文件

从Android 11开始,具有READ_EXTERNAL_STORAGE权限的应用程序可以直接使用文件路径读取媒体文件和本地库文件。

安全分享大数据集

在某些情况下,例如涉及机器学习或媒体播放的情况,您的应用可能希望使用与另一个应用相同的大型数据集。 在早期版本的Android中,您的应用程序和另一个应用程序都需要下载同一数据集的单独副本。 为了帮助减少网络和磁盘上的数据冗余,Android 11允许使用共享数据Blob将这些大型数据集缓存在设备上。

支持低延迟请求和检查

Android 11增加了ALLM模式。某些显示器可以执行图形后处理,例如某些外部显示器和电视。 这种后处理可以改善图形效果,但会增加延迟。 支持HDMI 2.1的较新显示器具有自动低延迟模式(ALLM,也称为游戏模式),该功能通过关闭此后处理来最大程度地减少延迟。 窗口可以请求使用自动低延迟模式(如果可用)。 ALLM对于游戏和视频会议等应用特别有用,在这些应用中,低延迟比拥有最佳可能的图形更为重要。

MediaCodec低延迟解码

Android 11 增强了MediaCodec,增加了游戏和其它实时应用的低延迟解码。

NDK图像解码

Android 11 增加了ImageDecoder 接口,提供Android native 应用程序直接进行图像解码的能力。

资源加载

Android 11引入了一个新的API,该API允许应用程序动态扩展资源的搜索和加载方式。 新的API类ResourcesLoader和ResourcesProvider主要负责提供新功能。 它们共同提供了提供额外资源和资产或修改现有资源和资产的价值的能力。

更新ICU库

与Android 10中的版本63相比,Android 11更新了android.icu包以使用ICU库的版本66。新的库版本包括更新的CLDR语言环境数据和对Android国际化支持的许多增强。

神经网络接口1.3

Android 11扩展和升级了NNAPI。增加了对TensorFlow的支持。

生物特征认证强度

为了帮助您控制应用程序数据的安全级别,Android 11引入了BiometricManager.Authenticators接口。 该接口定义了生物识别硬件元素的可能强度。 设备制造商为每个元素定义了特定的强度,例如BIOMETRIC_STRONG或BIOMETRIC_WEAK。 这些强度级别在"兼容性定义"页面上定义。

CallScreeningService更新

从Android 11开始,CallScreeningService可以请求有关来电的STIR / SHAKEN验证状态(verstat)的信息。 此信息作为来电详细信息的一部分提供。 如果CallScreeningService拥有READ_CONTACTS权限,则当用户联系人中的某个号码有来电或去电时,会通知该应用程序。

Android模拟器增加对扩展摄像头的支持

Android 11引入了改进的Android Emulator相机功能。 添加的功能包括:RAW拍摄、YUV后处理、3级设备、逻辑相机支持。

当捕获到活动时,静掉声音和震动

从Android 11开始,在使用摄像机的时候,应用程序可以静掉震动和声音。

Wifi passpoint增强

Passpoint能够使应用程序自动的安静的连接安全的Wi-Fi热点。

扩展Wi-Fi建议接口

Android 11扩展了Wi-Fi建议API,以增强您应用的网络管理功能,其中包括:

1. 连接管理应用程序可以通过允许断开连接请求来管理自己的网络。

2. Passpoint网络已集成到Recommendation API中,并且可以建议给用户。

3. Analytics API使您能够获取有关网络质量的信息。

聊天泡泡

现在,开发人员可以使用气泡来帮助在整个系统中进行对话。 Bubbles是Android 10中的一项实验性功能,可通过开发人员选项启用-在Android 11中不再需要此功能。

应用行为改变

Android 11 平台的行为改变可能会影响到你的APP。

JobScheduler API 调用调试限制

Android 11为应用程序提供调试支持,以识别潜在的JobScheduler API调用已超过某些速率限制。 开发人员可以使用此功能来识别潜在的性能问题。 对于将可调试清单属性设置为true的应用程序,超出速率限制的JobScheduler API调用将返回RESULT_FAILURE。 设置了限制,以使合法用例不受影响。

单次权限

在Android 11,无论你的应用在何时请求位置、麦克风和相机相关的权限,都只能获得一次的临时授权。

用户可以选择何时出现权限对话框

Android 11不鼓励重复请求特定权限。 如果应用程序在设备上的安装生命周期内请求特定权限,被用户拒绝两次,则此操作表示"不再询问"。

后台位置权限

如果您的应用目标是Android 11,则无法直接请求对背景位置的全天候访问。 即使您的应用目标是Android 10(API级别29)或更低版本,用户也会看到系统对话框,其中包含用于控制前台位置访问的按钮。

存储UI

Android 11引入了一些与存储权限相关的面向用户的更改,包括存储运行时权限的名称以及说明应用程序对存储权限的请求的对话框的内容。

使用ACTION_MANAGE_OVERLAY_PERMISSION intents总会出现系统权限页面

从Android 11开始,ACTION_MANAGE_OVERLAY_PERMISSION意向始终将用户带到顶级"设置"屏幕,他们可以在其中授予或撤消应用程序的SYSTEM_ALERT_WINDOW权限。 任何包:意图中的数据将被忽略。

在早期版本的Android中,ACTION_MANAGE_OVERLAY_PERMISSION意图可以指定一个程序包,该程序包会将用户带到特定于应用程序的屏幕以管理权限。 Android 11不再支持此功能。相反,用户必须首先选择要授予或撤消其权限的应用程序。 此更改旨在通过使许可授予更加有意来保护用户。

所有文件访问权限

有些应用程序具有核心使用场景,需要广泛的文件访问权限,例如文件管理或备份和还原操作。 他们可以通过声明特殊的MANAGE_EXTERNAL_STORAGE权限来获取"所有文件访问"权限。

非SDK接口限制

Android 11根据与Android开发人员的协作以及最新的内部测试,包括受限制的非SDK接口的更新列表。 只要有可能,在限制非SDK接口之前,请确保可以使用公共替代方案。

如果您的应用程序未针对Android 11,则其中的某些更改可能不会立即影响您。 但是,尽管您目前可以使用灰名单中的非SDK接口(取决于应用程序的目标API级别),但使用任何非SDK方法或字段始终会带来破坏应用程序的高风险。

如果不确定您的应用程序是否使用非SDK接口,则可以测试您的应用程序以找出答案。 如果您的应用程序依赖于非SDK接口,则应开始计划向SDK替代方案的迁移。 不过,我们了解到某些应用程序具有使用非SDK接口的有效用例。 如果您找不到在应用程序功能中使用非SDK接口的替代方法,则应请求新的公共API。

文件描述符清理程序(fdsan)

Android 10引入了fdsan(文件描述符清理程序)。 fdsan可检测到文件描述符所有权的不当处理,例如使用后关闭和两次关闭。 fdsan的默认模式在Android 11中更改。fdsan现在在检测到错误时中止; 以前的行为是记录警告并继续。

至此,Android 11开发者预览版的变化就介绍完了。下附官方网址链接:https://developer.android.google.cn/preview/privacy


分享到:


相關文章: