Android Q应用适配指南

1. Android Q兼容性变化
1.1非SDK接口限制
Android 平台开始限制您的应用在 Android 9(API 级别 28)中使用非 SDK 接口,灰名单和白名单的非 SDK 接口已有更新。
适配建议:
依赖非SDK接口的应用应尽快迁移到 SDK 替代方案,如部分非SDK接口无替代方案,则请求新的公共API。
1.2重大隐私权变更
1.2.1 分区存储
以 Android Q 为目标平台的应用(以及选择接受这些变更的应用),Android Q 更改了应用对设备外部存储设备中的文件(例如存储在路径 /sdcard 下的文件)的访问方式,只有满足相关条件,应用才能访问其他应用创建的文件。
适配建议:
如果应用以 Android Q 为目标平台,则在访问外部存储设备中的文件时会进入过滤视图,具有过滤视图的应用对其创建的文件始终拥有读/写权限,无论文件位于特定于此应用的目录以内还是以外。只有在满足以下两个条件时,您的应用才能访问其他应用创建的文件:
(1)您的应用已获得 READ_EXTERNAL_STORAGE 权限。
(2)这些文件位于以下其中一个明确定义的媒体集合中:
照片:存储在 MediaStore.Images 中
视频:存储在 MediaStore.Video 中。
音乐文件:存储在 MediaStore.Audio 中。
1.2.2设置位置信息
Android Q 引入了新的位置权限,区分应用前台和后台获取位置信息。如果您的应用在后台时请求访问设备位置信息,则会影响您的应用。如果用户只授权前台获取位置信息权限, 应用在返回后台后则不能再获取位置信息。
适配建议:
使用新权限在后台访问位置信息,并在没有后台位置信息更新的情况下确保优雅降级。应用应向用户说明他们需要允许该应用始终都能访问设备位置信息,以确保正常运行,然后请求在后台访问位置信息。
1.2.3后台应用启动
Android Q 对应用可启动 Activity 的时间施加了限制,只有在满足相关条件时才能启动 Activity。此项行为变更适用于在 Android Q 上运行的所有应用。
适配建议:
检查activity是否符合启动的条件,后台应用都应创建通知以便向用户提供信息。
1.2.4硬件标识符获取
从 Android Q 开始,应用必须具有 READ_PRIVILEGED_PHONE_STATE 特许权限才能访问设备的不可重置标识符(包含 IMEI 和序列号),会对应用依赖device id的功能产生影响。影响在 Android Q 上运行的所有应用,即使这些应用以 Android 9(API 级别 28)或更低版本为目标平台。
适配建议:
请关注厂商近期发布的适配指导。
1.3加固版本兼容
Android每个大版本升级,加固方案商都会对android大版本适配和兼容。依赖加固固件的应用需要及时更新最新的加固固件来适配Android新版本,避免加固导致应用无法正常使用或影响应用稳定性。
1.4第三方SDK兼容
应用会依赖第三方的SDK Jar或Native so库等第三方SDK,Android大版本升级第三方SDK会存在不兼容的问题,需要推动以及更新依赖的第三方SDK适配android Q。

2. 参考链接

  • Android
    Q所有应用行为变更https://developer.android.google.cn/preview/behavior-changes-all

  • Android Q targetSDK 29应用行为变更:https://developer.android.google.cn/preview/behavior-changes-q

  • Android Q 中的隐私权:https://developer.android.google.cn/preview/privacy

  • google pixel系列镜像升级包:https://developer.android.google.cn/preview/download

你可能感兴趣的:(AndroidQ)