作者: 软件工程师 David Brazdi 和 Nicolas Geoffray

三个月前,我们宣布从 Android P 开始限制非 SDK 接口的使用。我们知道这些限制可能对您的应用发布造成影响,因此我们为开发者提供了相关工具用以检测违规调用,帮助各位在计划中预留充足时间,针对谷歌新发布的政策调整,并向我们提供反馈。
在开发者预览版和 Beta 1 版本中,我们通过多种方式告知了开发者这些限制对应用造成的影响。 在开发者预览版中,被限制 API 的调用信息会被记录在日志中,并显示相应的 Toast 警告;而在 Beta 1 版本中,开发者可以通过使用 StrictMode 检测非 SDK 接口的调用,并自行记录日志消息。比如:

总而言之,在 Android P 上运行的应用会受到非 SDK 接口使用限制。如果您的目标版本为 Android P,请查看灰名单中包含的仍然可以调用的非 SDK 接口,灰名单以外的非 SDK 接口均不可调用。如果应用的目标版本为 Android Oreo 或更低,大部分的限制会被豁免,但是如果调用的非 SDK 接口不在灰名单中,那么应用会在 logcat 中收到警告信息 (对用户不可见)。
请您在我们新发布的 Beta 2 版本上进行测试,并使用 StrictMode 来检测仍在使用的非 SDK 接口。请注意:Beta 2 版本和最终稳定版对非 SDK 接口的使用限制基本一致。您可在文章下方留言,提出您在开发过程中遇到的相关问题或分享您的想法。
点击查看《对于非 SDK 接口的限制》文档了解详细信息
