一.背景
1.非 SDK 接口限制
非SDK接口限制在Android P中就已提出,但是在Q中,被限制的接口的分类有较大变化。
2.非SDK接口介绍
为了确保应用稳定性和兼容性,Android 平台开始限制您的应用可在 Android 9(API 级别 28)中使用哪些非 SDK 接口。Android Q包含更新后的受限非 SDK 接口列表(基于Android 开发者之间的协作以及最新的内部测试)。
非SDK接口限制就是某些SDK中的私用方法,如private方法,你通过Java反射等方法获取并调用了。那么这些调用将在target>=P或target>=Q的设备上被限制使用,当你使用了这些方法后,会报错:
获取方法报错信息
非SDK接口查找
如果您不确定自己的应用是否使用了非 SDK 接口,则可以测试该应用进行确认。
当你调用了非SDK接口时,会有类似Accessing hidden XXX的日志:<