专栏首页Android 开发者后续更新 | 减少使用非 SDK 接口以提升稳定性

后续更新 | 减少使用非 SDK 接口以提升稳定性

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

在 Android 生态中,我们非常重视为用户和开发者提供最好的体验。每一次版本更新都会引入新的功能,助力开发者打造完美的用户体验;然而,我们发现一些应用开发者在开发过程中调用了非 SDK 接口,导致用户频繁遭遇应用不兼容甚至崩溃,并给开发者带来紧急发布补丁等困扰。我们希望能做得更好,因此需要各位开发者的共同协助,来确保每个 Android 新版本的稳定性。

三个月前,我们宣布从 Android P 开始限制非 SDK 接口的使用。我们知道这些限制可能对您的应用发布造成影响,因此我们为开发者提供了相关工具用以检测违规调用,帮助各位在计划中预留充足时间,针对谷歌新发布的政策调整,并向我们提供反馈。

在开发者预览版和 Beta 1 版本中,我们通过多种方式告知了开发者这些限制对应用造成的影响。 在开发者预览版中,被限制 API 的调用信息会被记录在日志中,并显示相应的 Toast 警告;而在 Beta 1 版本中,开发者可以通过使用 StrictMode 检测非 SDK 接口的调用,并自行记录日志消息。比如:

我们理解应用调用非 SDK 接口有很多原因,而确保您的应用能够继续在 Android P 上顺利运行对我们而言非常重要。我们十分感谢很多开发者通过错误追踪器 (issue tracker) 进行反馈并详细解释对一些非 SDK 接口的需求。对于大部分的请求,我们已将相关的非 SDK 接口添加至灰名单,从而暂时豁免了它们在 Android P 上的限制。同时,我们团队也投入了大量资源,在百万个应用上运行静态分析,同时处理数千份来自内外部 beta 测试人员的自动生成报告。借助分析结果,我们识别出了更多应用依赖的非 SDK 接口,并相应地对灰名单进行了增补。此外,我们将会在未来发布的系统版本中,探讨是否存在公有 SDK 来替代灰名单中的接口。不过,我们或许仍然漏掉了一些正在被使用的非 SDK 接口。因此,为了将应用不兼容的风险降至最低,targetSdkVersion 为 Android Oreo 或更低的应用依旧可以调用大部分非 SDK 接口。

总而言之,在 Android P 上运行的应用会受到非 SDK 接口使用限制。如果您的目标版本为 Android P,请查看灰名单中包含的仍然可以调用的非 SDK 接口,灰名单以外的非 SDK 接口均不可调用。如果应用的目标版本为 Android Oreo 或更低,大部分的限制会被豁免,但是如果调用的非 SDK 接口不在灰名单中,那么应用会在 logcat 中收到警告信息 (对用户不可见)。

请您在我们新发布的 Beta 2 版本上进行测试,并使用 StrictMode 来检测仍在使用的非 SDK 接口。请注意:Beta 2 版本和最终稳定版对非 SDK 接口的使用限制基本一致。您可在文章下方留言,提出您在开发过程中遇到的相关问题或分享您的想法。

点击查看《对于非 SDK 接口的限制》文档了解详细信息

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 提示Android Q 对非 SDK 接口限制的更新 | Android 中文教学视频

    为了提高 Android 应用的兼容性,降低开发者们的维护成本,我们从 Android 9 Pie 开始引入非 SDK 接口限制。在这个视频中,我们介绍了非 ...

    Android 开发者
  • 非 SDK 接口常见问题 | Android 开发者 FAQ Vol.13

    Android 开发者
  • Android P 应用兼容常见错误及建议

    Android 开发者
  • Android 9.0适配及部分新特性介绍

    在最开始针对速贷进行Android9.0版本的适配时,我使用的是真机是vivo X21A,将targetSdkVersion升到28,运行发现网络请求全报400...

    用户2802329
  • Android开发专业名词及工具概述

    听着music睡
  • Android Studio自动排版的两种实现方式

    Android Studio这样的集成开发环境虽然代码自动化程度很高,但是自动化程度高导致人的自主性就下降了,而且总是依赖编辑器的功能也会搞得代码排版很别扭。

    砸漏
  • CentOS7上安装配置RabbitMQ

    此时就可以从外部访问了,但此时再看log文件,发现内容还是原来的,还是显示没有找到配置文件,可以手动删除这个文件再重启服务,不过这不影响使用

    剑行者
  • Ubuntu18.04更换国内源的方法示例

    Ubuntu本身的源使用的是国内的源,下载速度比较慢,不像CentOS一样yum安装的时候对镜像站点进项选择,

    砸漏
  • Ubuntu - WSL系统更换国内源【WSL第三弹】

    新安装了WSL-Ubuntu默认的apt源是国外的源。国内访问速度会很慢。所以更改国内源是非常有必要的。

    无道
  • Ubuntu更新软件源

    默认情况下,Ubuntu的软件源在国内使用不是很理想,网速限制太大,造成一些较大的软件下载安装一直超时的情况出现。

    大牧莫邪

扫码关注云+社区

领取腾讯云代金券