Android 什么是非SDK接口

Android 什么是非SDK接口,android,android-9.0-pie,Android,Android 9.0 Pie,在搜索新的AndroidP特性之后,我遇到了非SDK接口的限制。我的问题是 什么是非SDK接口或SDK接口? 他们之间有什么区别?特别是让非SDK变得更好。 android可用的流行SDK和非SDK接口示例 另外,我遇到了区分SDK和API接口的抽象答案,但它没有满足我的问题:/引用: 一般来说,SDK接口是Android框架中记录的接口 并非框架中的所有内容都出现在文档中。在源代码中标记为@hide的类、方法、字段等在运行时可用,不会出现在文档中。这些项目只能通过非常规方式访问,例如反射 这就

在搜索新的AndroidP特性之后,我遇到了非SDK接口的限制。我的问题是

什么是非SDK接口或SDK接口? 他们之间有什么区别?特别是让非SDK变得更好。 android可用的流行SDK和非SDK接口示例

另外,我遇到了区分SDK和API接口的抽象答案,但它没有满足我的问题:/

引用:

一般来说,SDK接口是Android框架中记录的接口

并非框架中的所有内容都出现在文档中。在源代码中标记为
@hide
的类、方法、字段等在运行时可用,不会出现在文档中。这些项目只能通过非常规方式访问,例如反射

这就是安卓p

多年来,我一直建议开发者不要访问这些东西,因为它们不可靠。由于基于Android版本或设备制造商/ROM modder调整的变化,任何Android设备都可能没有隐藏的东西。现在,谷歌将更加坚定地执行这一建议,至少在某些情况下是这样

特别是让非SDK变得更好


它们不是“更好”。但是,出于某种原因(例如API尚未解决),他们可能会提供SDK中不可用的某些功能。

官方文档中有解释。。。你不明白什么?@Selvin正如你从我的问题中注意到的那样,我在识别非sdk接口时遇到了问题,我需要的是它的内容或标识,而不是文档关注我的应用程序APK测试结果中的Google play报告“问题:非sdk接口的使用”的原因。然而,我没有在自己的源代码中使用任何隐藏的API。问题是如何识别麻烦库?@AlexanderFarber:在Android 9.0上,您应该在LogCat中看到一些关于非SDK接口使用的消息。同样在9.0上,您可以在
StrictMode
detectNonSdkApiUsage()中设置
penaltyListener()
VmPolicy.Builder
中的
,以近实时地了解非SDK API的使用情况。@AlexanderFarber如果使用androidx支持库,它将对
setContentView()使用隐藏方法
computeFitSystemWindows
导致Android上出现此违规报告P@materemias那么我们就忽略了那个违规报告了吗?@PrimožKralj:如果你使用的是这些库的最新版本,希望唯一的报告是针对灰名单条目的,而不是黑名单条目的。由谷歌(AndroidX开发者)与谷歌(创建非SDK接口列表的人)对话,让AndroidX在新版本的Android上工作。