后续更新 | 减少使用非 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 条评论
登录 后参与评论

相关文章

来自专栏原创

基于 jenkins 和 docker 的持续集成平台

软件开发过程中,开发成员经常需要把自己工作集成到项目中,通常每个成员每天至少集成一次。如果项目较小,对外部的依赖较小,那么软件集成可能不会是什么问题。但是目前很...

4179
来自专栏AI研习社

Github 项目推荐 | 基于 Unity/OpenAI Gym/PyTorch/TF 的深度强化学习研究框架

SLM Lab 是一个基于 Unity, OpenAI Gym, PyTorch, Tensorflow 的深度增强学习研究框架。

982
来自专栏安恒信息

世界备份日:你是否会备份自己的文件?

备份是使用智能设备时一个需要重视的环节,很多人无论在使用PC设备还是移动终端时,都会忽略对重要资料的备份工作,一旦出现问题往往追悔莫及。虽然时下 流行的视频网站...

3338
来自专栏运维咖啡吧

中小团队快速构建SQL自动审核系统

Inception是一个开源的Mysql自动化工具,具有SQL审核、执行、回滚等实用的功能,由国内大神基于mysql源码开发,可以很明确的,详细的,准确的审核M...

813
来自专栏小石不识月

做这 12 件简单的小事,能让你更安全地上网

勒索软件(Ransomware)攻击、身份盗窃,以及在线信用卡欺诈,这些都可能是具有毁灭性的,然而它们只是众多类型的恶意软件与网络攻击中的冰山一角。如果你从来没...

1301
来自专栏Java架构师历程

WebBuilder —— Web 开发平台

WebBuilder是一款跨平台、数据库和浏览器的可视化Web应用开发平台,使用了多项最新的技术,使Web应用的开发更快捷和简单。

1594
来自专栏BestSDK

微软最新版SDK显示:正秘密研发折叠设备,可三屏同时显示!

众所周知,微软代号仙女座的可折叠折叠设备存在已经被专利证实。尽管从未发布官方声明,但微软现在在Windows 10的最新SDK预览版中添加了更多证据。

1104
来自专栏知晓程序

支持多人同时编辑文档,这个小程序有点酷!

小程序体验师:陈丹阳 凡是用过 Google Docs 的人,大约都很难适应再去用 Office 办公。

871
来自专栏针针小站

【Soft】Advanced SystemCare 11 系统优化清理

1327
来自专栏北京马哥教育

专为设计师而写的GitHub快速入门教程

在互联网行业工作的想必都多多少少听说过GitHub的大名,除了是最大的开源项目托管平台,许多企业也都是用GitHub来协同开发工作,当然我们彩程也是其中之一。笔...

3456

扫码关注云+社区