谷歌将限制Android非SDK接口使用
极客时间编辑部
讲述:杜力大小:1.22M时长:02:40
今年 2 月,有消息称安卓 9.0 将禁止使用非官方 API,引起了开发者热烈的讨论。近日,时隔一个多月,安卓团队终于发声证实了这个说法,声称从安卓 9.0 开始,对非 SDK 的 API 的限制从 NDK 扩展到 Java,并表明这样做的目的是为了提高系统的稳定性。
谷歌发布声明称:“在安卓系统当中,我们努力确保应用程序不使用非 SDK 接口,因为此类作法往往会导致用户遭遇崩溃,并给开发人员的紧急发布造成困扰。在安卓 N 当中,我们限制了 C/C++ 代码所能使用的符号组合。从安卓的下一个版本开始,我们将进一步扩展此类限制。”
也就是说,从下一个版本开始,非 SDK 方法与字段的使用将受到限制,开发人员将无法对其进行访问,无论通过直接、反射或者 JNI 等方式。
不过,谷歌也表示,他们将从使用率较低或并未得到实际使用的接口开始,为开发人员提供充分的迁移时间,同时长期发布警报通告,并在此期间收集与所需 SDK 接口相关的反馈意见。因此,如果你的应用程序目前仍依赖于非 SDK 接口,则应尽快着手向 SDK 备选方案进行迁移。
由于 Java 语言与 C++ 在特性方面存在巨大差异,因此对 Java 语言的具体限制方式将与立足符号的 C++ 限制略有区别。谷歌建议,开发人员不应该访问那些不属于官方 SDK 的类,同时也需要确保仅使用各个类中被纳入官方文档的部分。
具体来讲,这意味着当开发人员通过反射等语义与某个类进行交互时,所访问的方法或字段都应该在 SDK 当中得以明确列出。
在下一个安卓开发者预览版当中,开发人员将能够运行现有的应用程序,并在使用非 SDK 接口时收到警告提示。该接口将在最终版本中受到黑名单或灰名单机制的限制。
接下来,谷歌将利用即将推出的开发者预览版与新的 bug 追踪器目录专注于监控非 SDK 接口的使用情况。如果相关接口已经拥有官方支持的 SDK 替代选项,他们将发布官方指南,以帮助开发人员了解如何从非 SDK 接口迁移至官方支持方案。
如果某些接口还找不到可行的 SDK 替代选项,开发者可以通过 bug 追踪器向谷歌提供相关信息,谷歌称他们会利用这部分资讯调整限制黑名单,从而最大限度降低此次迁移对开发人员的影响,并着手推出相关替代方案。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
请先领取课程
免费领取
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
精选留言
由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论