博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
后续更新 | 减少使用非 SDK 接口以提升稳定性
阅读量:6432 次
发布时间:2019-06-23

本文共 1860 字,大约阅读时间需要 6 分钟。

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

640?wx_fmt=jpeg

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

 

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

 

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

640?wx_fmt=png

开发者预览版?链接:

>?https://developer.android.google.cn/preview

StrictMode?链接:

>?https://developer.android.google.cn/reference/android/os/StrictMode?

 

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

 

错误追踪器链接:

>?https://issuetracker.google.com/issues/new?component=328403&template=1027267

灰名单链接:

>?https://android.googlesource.com/platform/frameworks/base/+/85c81cb24c5d71fc79dea3ba498d1a509895bb01/config/hiddenapi-p-light-greylist.txt

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

 

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

 

 

?点击屏末?|?阅读原文?|?查看《对于非 SDK 接口的限制》文档了解详细信息

640?wx_fmt=jpeg

推荐阅读

·?Android P Beta 2 及终版 API 强势来袭!

·?减少使用非?SDK?接口,提升系统稳定性

·?Android P 行为变更

·?满足 Google Play 目标 API 等级 (targetSdkLevel) 的要求

 


文章来源:

转载于:https://www.cnblogs.com/yujingyua/p/9639725.html

你可能感兴趣的文章
MUI框架开发HTML5手机APP(一)--搭建第一个手机APP(转)
查看>>
linux下使用 du查看某个文件或目录占用磁盘空间的大小
查看>>
Android水波纹特效的简单实现
查看>>
[wp7软件]wp7~~各种视频播放器下载大全
查看>>
Java工程师必知之事 —— 如何定义自己的职业路线?
查看>>
Java中对象并不是都在堆上分配内存的。
查看>>
代码质量与规范,那些年你欠下的技术债
查看>>
计算机程序的思维逻辑 (19) - 接口的本质
查看>>
自定义控件(二) 从源码分析事件分发机制
查看>>
CVE-2014-4113漏洞利用过程分析
查看>>
解密MSSQL链接数据库的密码
查看>>
Glide-源码详解
查看>>
你敢在post和get上刁难我,就别怪我装逼了
查看>>
直播 3.0 时代,在线教育行业的裂变和重构
查看>>
SpringBoot使用Nacos服务发现
查看>>
2017双11技术揭秘—阿里巴巴数据库技术架构演进
查看>>
我的友情链接
查看>>
Spring框架 - AOP使用
查看>>
Ansible常用内置属性
查看>>
C#使用正则表达式校验邮箱
查看>>