非SDK管控(Hidden API)
背景
从 Android 9(API 级别 28)开始,此平台对应用能使用的非 SDK 接口实施了限制。只要应用引用非 SDK 接口或尝试使用反射或 JNI 来获取其句柄,这些限制就适用。这些限制旨在帮助提升用户体验和开发者体验,为用户降低应用发生崩溃的风险,同时为开发者降低紧急发布的风险。
在Android Q中,谷歌继续加强了对非SDK接口的使用限制,黑名单接口数量大幅增长,部分非SDK接口被删除,将导致大面积应用无法正常使用的问题,需要开发者重点关注并进行适配。
SDK 接口和非 SDK 接口
SDK接口: 谷歌官方网站能查到的接口都是SDK接口 查询链接
非SDK接口: 除了谷歌开放的SDK接口之外的其他JAVA接口都是非SDK接口。
滥用非SDK接口的危害
非SDK接口在Android不同版本间存在很大的差异,使用非SDK接口容易带来兼容性问题。
名单类型说明
名单 | 名单类型 | 说明 |
---|---|---|
黑名单 | blacklist | 无法调用。无论您应用的目标 API 级别是什么,您都无法使用此列表中的非 SDK 接口。如果您的应用尝试访问其中任何一个接口,系 |