Android Q 适配指南
官方文档:https://developer.android.com/about/versions/10
在Android 10开始版本中,官方的改动较大,相应的开发者适配成本还是很高的。
这里按照2019.11.11 google android q workshop
流程,大概说明一下Android Q适配需要注意的内容。虽然是大概介绍,但应该是目前最全的适配攻略了…
- 非SDK 接口
- 设备ID
- 外部存储
- 权限
- 新功能——夜间模式
一、非SDK接口
官方文档:针对非 SDK 接口的限制
官方从 Android 9(API 级别 28)开始,对应用使用的非 SDK 接口实施了限制。
如果你的APP通过引用非 SDK 接口
或尝试使用反射或 JNI 来获取句柄
,这些限制就会起作用。官方给出的解释是为了提升用户体验、降低应用崩溃
风险。
1.1、非SDK接口检测工具
官方给出了一个检测工具,下载地址:veridex
veridex使用方法:
appcompat.sh --dex-file=apk.apk
1.2、blacklist、greylist、greylist-max-o、greylist-max-p含义
以上截图中,blacklist、greylist、greylist-max-o、greylist-max-p含义如下:
- blacklist 黑名单:禁止使用的非SDK接口,运行时直接Crash(因此必须解决)
- greylist 灰名单:即当前版本仍能使用的非SDK接口,但在下一版本中可能变成被限制的非SDK接口
- greylist-max-o: 在targetSDK<=O中能使用,但是在targetSDK>=P中被禁止使用的非SDK接口
- greylist-max-p: 在targetSDK<=P中能使用,但是在targetSDK>=Q中被禁止使用的非SDK接口
如果觉得我没有说清楚,可以看以下 2019.11.11 google android q workshop PPT 截图