12月30日消息,据国外媒体VentureBeat报道,谷歌将其在Android对Java应用程序接口(API)的实现换成甲骨文的JDK开源版本OpenJDK。该消息的传出源起于Hacker News发现上个月对OpenJDK的一次重大代码提交。谷歌证实,Android N将会完全依赖于OpenJDK,而非Android自己对Java API的实现。
“作为开源平台,Android建立于开源社区的协作的基础上。”谷歌发言人向VentureBeat表示,“对于即将到来的Android版本,我们计划将Android的Java语言库转移到OpenJDK,打造一个公共代码库供开发者开发应用与服务。谷歌长期以来都在跟OpenJDK社区进行合作,也一直给它作出贡献。我们期待未来能够给OpenJDK项目作出更多的贡献。”
Android提供特定的Java API库来支持基于Java编程语言的应用开发,这些资源分成两个部分:Java代码库的API和谷歌开发的使得那些代码库可行的实现代码。作为Java开发者,甲骨文对这些代码库有两种实施:专有的JDK版本和开源的OpenJDK版本。谷歌决定“整合”它的努力成果和OpenJDK(Android已经在部分领域使用OpenJDK),意味着它将共享它的实现代码。
上述的代码提交显示有8902个文件发生变化,清楚显示OpenJDK代码添加到了Android当中。
谷歌希望开发者会喜欢这一变动,因为它简化了他们开发应用所基于的代码——针对Java API库的公共代码基,而不是多个代码基。这也许属实,但如果那是谷歌完全转向OpenJDK的唯一理由,它应该早就那么做。
被问到为什么现在才实施该举措时,该公司谈到了Java 8去年的推出以及lambda等新语言特性的推出。谷歌想要向OpenJDK投入更多的资源,让该团队能够在新特性和新改进上产生更大的影响。不管怎么样,那是谷歌向开发者说的故事,但还需要关注谷歌与甲骨文的诉讼结果。
谷歌与甲骨文的法律纠纷
Hacker News用户在猜想谷歌的代码提交行动是否意味着甲骨文和谷歌之间的法律纠纷已经庭外和解,谷歌是否已经决定在未来的Android版本的开发上保护好自己,以防在该诉讼中落败。这是很值得思考的问题,但由于该案件尚未结束,谷歌拒绝回应此次代码提交是否与该案有关。
在2010年1月收购Sun之后,甲骨文于同年8月控告谷歌侵犯其版权和专利,称Android不能在未经授权的情况下使用Java的API。谷歌回击称,API不受版权保护,因为它们对于软件开发、协作与创新必不可少。
2012年5月,陪审团认定谷歌没有侵犯甲骨文的专利,称Java的API不受版权保护。2014年5月,美国联邦巡回法院部分推翻了地区法院的裁决,裁定Java的API受版权保护。2015年6月,美国最高法院拒绝审理该案件,将其递回给地方法院,因此谷歌可能会辩称它没有不正当使用甲骨文受版权保护的API。
经过这一番反复,谷歌决定全面拥抱OpenJDK,难道只是偶然吗?不大可能,但最终结果才是最重要的:未来的Android版本将基于OpenJDK,而非甲骨文专有的JDK版本。
不管怎么样,该案件尚未结束(谷歌不能更改现有的Android版本),业界仍将高度关注最终的裁决,因为它可能会对软件开发产生巨大的影响。如果甲骨文胜诉,那么科技巨头们在开发者开发基于现有应用与服务的新软件问题上会有很大的控制权。而如果谷歌胜诉,正当使用方面的法规会给API的使用带来保护。(皓慧)