谷歌正在替换Android中的Java应用程序编程接口(API)的实施,其中OpenJDK是Oracle的Java开发套件(JDK)的开源版本。该消息首先从上个月提交给黑客新闻的“神秘的Android CodeBase提交”。谷歌确认通电博格,Android N将依赖于OpenJDK实现,而是Android自己的Java API实现。

“作为一个开源平台,Android建立在开源社区的协作之上,”谷歌发言人告诉VidtureBeat。“在我们即将发布的Android中,我们计划将Android的Java语言库移动到基于OpenJDK的方法,为开发人员创建一个常见的代码基础,用于构建应用程序和服务。谷歌长期以来一直与OpenJDK社区一起工作,并期待将来对OpenJDK项目做出更多贡献。“

Android提供某些Java API库,以支持Java编程语言中的应用程序的开发,分为两个部分:图书馆的API,以及由Google开发的实现代码,使得所述图书馆工作。开发Java的Oracle有两种实现这些库:专有的JDK版本和开源OpenJDK版本。谷歌的决定“巩固”它与OpenJDK的努力意味着它正在远离自己的实施代码到Oracle的开源代码。

有问题的代码提交,显示8902文件已更改,显然注释OpenJDK代码已添加到Android:

初始导入OpenJDK文件。使用SRC / Main
/ Java和SRC / Main / Nation Subdirecties.Build Ojluni进入Core-OJ JAR.USE OpenJDK类从Java.awt.font
package.copy of jdk的所有文件/ src目录
/股/类和JDK / src目录/的Solaris /类
目录中的OpenJDK到libcore / ojluni / src目录/主/ java.Copy以下从本机文件的OpenJDK到libcore / ojluni
/ src目录/主/本地:[文件较长的文件列表]

这只是一个提交。谷歌对采用OpenJDK的开源存储库提交了几百个更改。

谷歌希望Android开发人员能够欣赏这种变化,因为它简化了它们构建应用程序的代码 - 这些Java API库的常见代码库,而不是多个代码库。这可能是真的,但如果这是谷歌使完整的交换机的唯一原因,这家公司将在多年前这样做。

当我们询问谷歌为什么现在,该公司指出去年java 8发布,并引入了Lambdas等新语言功能。因此,谷歌希望将更多资源放入OpenJDK,其中团队对新功能和改进产生更大的影响。这是谷歌在任何情况下都在推动的开发人员故事,但这里有一个巨大的法律叙述不能被遗忘。

甲骨文

黑客新闻用户正确地想知道代码提交是否意味着甲骨文和谷歌之间的法律纠纷已经解决,或者谷歌已经决定在它失败的情况下对未来的Android版本保护自己。这是一个很好的问题,但由于Oracle诉讼正在进行中,谷歌拒绝评论此代码提交是否相关。

在2010年1月收购Sun后,Oracle于2010年8月起诉谷歌版权和专利侵权,争论Android不能在未经许可的情况下使用Java的API。谷歌通过声明API无法受版权保护,因为它们对软件开发,协作和创新至关重要。

2012年5月,陪审团发现谷歌没有侵犯Oracle的专利,并添加了Java的API无法受到版权。2014年5月,联邦电路部分扭转了地区法院的决定,统治了甲骨文的青睐:Java的API可以受版权保护。2015年6月,美国最高法院拒绝听取该案件,并将其寄回较低的法院,因此谷歌可以争辩说它使Oracle的版权所有的API公布。

这只是一个巧合的是,在这一切来回之后,谷歌已经决定接受OpenJDK?不太可能,但最终结果是重要的:Android的未来版本将基于OpenJDK,而不是Oracle目前已发出的实施。

无论哪种方式,案例都没有结束(谷歌无法完全改变现有的Android版本),最终的决定仍将密切关注,因为它可能对整个软件开发产生巨大影响。如果Oracle WINS,Tech Giants可以在开发人员上持有很多功率,以基于现有应用程序和服务创建新软件。如果谷歌获胜,公平使用法律可以基本上保护API的使用。

12月30日更新:谷歌今天随后澄清了我们在我们写这篇文章之前向我们解释的一些细节。结果,标题已经纠正为更准确地反映故事。虽然谷歌正在远离自己的实现(使用Apache和谐为基础的库)来使用OpenJDK库作为标准Java库的基础,但该公司仍然对OpenJDK进行更改,使其在Android上工作。因此,刚刚基于OpenJDK的未来版本的Android版本将继续包含谷歌的“自己实现”的部分。

甲骨文拒绝发表评论本文。