美文网首页
Android 11 介绍(一)行为变更

Android 11 介绍(一)行为变更

作者: choha | 来源:发表于2020-05-02 21:15 被阅读0次
image.png

概述

下图是Google官方公布的Android 11里程碑时间点:


android 11 里程碑

Android 11 中提供的功能

行为变更:

所有应用

Android 11 平台包含一些行为变更,这些变更可能会影响您的应用。以下行为变更将影响在 Android 11 上运行的所有应用,无论其采用哪种 targetSdkVersion 都不例外。您应该测试您的应用,然后根据需要酌情修改,以便正确地支持这些变更。
此外,请务必查看仅影响以 Android 11 为目标平台的应用的行为变更列表。

JobScheduler API 调用限制调试

Android 11 为应用提供调试支持,以便确定有可能超过特定速率限制的 JobScheduler API 调用。开发者可以利用此服务发现潜在的性能问题。对于 debuggable 清单属性设置为 true 的应用,超出速率限制的 JobScheduler API 调用将返回 RESULT_FAILURE。应设置适当的限制,以使正当合理的用例不会受到影响。

因 OTA 更新而重启设备后在未提供用户凭据的情况下执行文件级加密

设备接收 OTA 更新并重启后,放在受凭据保护的存储空间中的凭据加密密钥可立即用来执行文件级加密 (FBE) 操作。因此,设备重启后,在用户输入其 PIN 码、密码或绘制解锁图案以解锁设备之前,您的应用可以执行与文件级加密相关的操作。

注意:此变更仅影响因 OTA 更新而发生的设备重启。如果您的应用应始终“在重新启动后恢复”,请继续支持直接启动

一次性权限(特别注意)

在 Android 11 中,每当应用请求与位置信息、麦克风或摄像头相关的权限时,应用都会获得临时的一次性权限。要详细了解此变更,请转到介绍 Android 11 中与权限相关的隐私权变更的页面,参阅“一次性权限”部分

用户的选择可以限制显示权限对话框的时间

Android 11 不鼓励重复请求某个特定的权限。当您的应用安装到设备上之后,如果用户在整个使用过程中曾两次对某个特定权限点按拒绝,则此操作隐含着“不再询问”的意味。要详细了解此变更,请转到介绍 Android 11 中与权限相关的隐私权变更的页面,参阅“权限对话框的可见性”部分

后台位置信息访问权限

如果您的应用以 Android 11 为目标平台,则无法直接请求始终都能在后台访问位置信息。即使您的应用以 Android 10(API 级别 29)或更低版本为目标平台,用户看到的系统对话框也会包含相应按钮,用于控制前台位置信息访问权限。

要详细了解此变更,请转到介绍 Android 11 中与位置信息相关的隐私权变更的页面,参阅“后台位置信息访问权限”部分

存储界面

Android 11 引入了多项与存储权限相关的面向用户的变更,其中包括存储运行时权限的名称以及用于说明应用的存储权限请求的对话框内容。要详细了解这些变更,请转到介绍 Android 11 中与存储相关的隐私权变更的页面,参阅权限部分

应用使用情况统计信息隐私保护

为了更好地保护用户,Android 11 将每个用户的应用使用情况统计信息存储在凭据加密存储空间中。因此,系统和任何应用都无法访问该数据,除非 isUserUnlocked() 返回 true,这发生在出现以下某种情况之后:

  • 用户在系统启动后首次解锁其设备。
  • 用户在设备上切换到自己的帐号。

如果您的应用已绑定到 UsageStatsManager 的实例,请检查您是否是在用户解锁其设备后在此对象上调用方法。如果并非如此,该 API 现在会返回 null 或空值。

MANAGE_OVERLAY_PERMISSION intent 始终会将用户转至系统权限屏幕

从 Android 11 开始,ACTION_MANAGE_OVERLAY_PERMISSION intent 始终会将用户转至顶级设置屏幕,用户可在其中授予或撤消应用的 SYSTEM_ALERT_WINDOW 权限。intent 中的任何 package: 数据都会被忽略。

在更低版本的 Android 中,ACTION_MANAGE_OVERLAY_PERMISSION intent 可以指定一个文件包,它会将用户转至应用专用屏幕来管理权限。Android 11 不再支持此功能,而是必须由用户先选择要对其授予或撤消权限的应用。此变更可以让权限的授予更有目的性,从而达到保护用户的目的。

所有文件访问权限

某些应用的核心用例需要访问大量的文件,例如文件管理操作或备份和还原操作。这些应用可以通过声明特殊的 MANAGE_EXTERNAL_STORAGE 权限获得“所有文件访问权限”。

注意:获得 MANAGE_EXTERNAL_STORAGE 权限,应用便可访问共享存储空间中可能具有敏感性的数据。在即将推出的开发者预览版中,Google Play 为需要此权限的应用提供了相关指南。

要详细了解此权限,请转到介绍 Android 11 中与存储相关的隐私权变更的页面,参阅所有文件访问权限部分

在元数据文件中声明“无障碍”按钮使用情况

从 Android 11 开始,您的无障碍服务无法在运行时声明与系统的“无障碍”按钮的关联。如果您将 AccessibilityServiceInfo.FLAG_REQUEST_ACCESSIBILITY_BUTTON 附加到 AccessibilityServiceInfo 对象的 flags 属性,则框架不会将“无障碍”按钮回调事件传递给您的服务。

应在您的无障碍服务元数据文件(通常为 res/raw/accessibilityservice.xml)中使用 flagRequestAccessibilityButton 标记来声明您的无障碍服务与“无障碍”按钮的关联。

限制非 SDK 接口

Android 11 包含更新后的受限制非 SDK 接口列表(基于与 Android 开发者之间的协作以及最新的内部测试)。在限制使用非 SDK 接口之前,我们会尽可能确保提供公开替代方案。

如果您的应用并非以 Android 11 为目标平台,那么其中一些变更可能不会立即对您产生影响。虽然您目前仍然可以使用灰名单中的一些非 SDK 接口(取决于您的应用的目标 API 级别),但如果您使用任何非 SDK 方法或字段,则应用无法运行的风险终归较高。

如果您不确定自己的应用是否使用了非 SDK 接口,则可以测试该应用,进行确认。如果您的应用依赖于非 SDK 接口,则应该开始计划迁移到 SDK 替代方案。不过,我们知道某些应用具有使用非 SDK 接口的有效用例。如果您无法为应用中的某项功能找到使用非 SDK 接口的替代方案,则应该请求新的公共 API

要详细了解此 Android 版本中的变更,请参阅 Android 11 中有关限制非 SDK 接口的更新。要全面了解有关非 SDK 接口的详细信息,请参阅对非 SDK 接口的限制

文件描述符排错程序 (fdsan)

Android 10 引入了 fdsan(文件描述符排错程序)。fdsan 检测错误处理文件描述符所有权的错误,例如 use-after-close 和 double-close。在 Android 11 中,fdsan 的默认模式发生了变化。现在,fdsan 会在检测到错误时中止,而以前的行为则是记录警告并继续。如果您在应用中发现由于 fdsan 而导致的崩溃,请参阅 fdsan documentation

Scudo Hardened Allocator

Android 11 在内部使用 Scudo Hardened Allocator 来为堆分配提供服务。Scudo 能够检测并减轻某些类型的内存安全违规行为。如果您在原生代码崩溃报告中发现与 Scudo 相关的崩溃(例如 Scudo ERROR:),请参阅 Scudo 问题排查文档。

SSL 套接字默认情况下使用 Conscrypt SSL 引擎

在 Android 11 中,默认的 SSLSocket 实现使用 Conscrypt SSLEngine

Open Mobile API 变更

从 Android 11 开始,Open Mobile API (OMAPI) 有了额外的功能:

  • 解析运营商权限的规则。

  • 使用以下一项或多项来自定义嵌入式安全元件 (eSE) 访问权限或配置 eSE:

    • 系统特许权限
    • 可配置的访问规则应用主数据 (ARA-M) 应用标识符 (AID)
    • 用于重置 OMAPI 读取器的系统 API
  • 为读取器提供清晰的指示符,以便应用过滤设备功能。

支持并发使用多个摄像头

Android 11 添加了 API 来查询对同时使用多个摄像头(包括前置摄像头和后置摄像头)的支持。

要在运行应用的设备上检查支持情况,请使用以下方法:

相关文章

网友评论

      本文标题:Android 11 介绍(一)行为变更

      本文链接:https://www.haomeiwen.com/subject/iydlghtx.html