36

在搜索新的 Android P 功能后,我遇到了非 SDK 接口的限制。我的问题是,

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

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

4

1 回答 1

37

引用文档

一般来说,SDK 接口是在 Android 框架Package Index中记录的那些接口。

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

这就是 Android P开始禁止的内容。

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

特别是让非 SDK 变得更好

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

于 2018-04-30T12:20:59.027 回答