开发者必知:谷歌做了一个艰难的决定

谷歌做了一个艰难的决定:弃用Java APIs。

所谓人红是非多,所以Android的崛起,必定伴随着战争。其中最具代表性的,最有争议的莫过于甲骨文和Google的官司了。

事件回顾:

自2010年起,两家公司关于Android系统的一部分是否侵犯了甲骨文的版权和专利,一起争论不休,因为系统中使用了甲骨文拥有的Java。整个官司既持久,又充满戏剧性。从2010年8月算起,已经有5年多了。到了今年6月份,甲骨文在这起诉讼中赢得了重大法律胜利:美国最高法院拒绝就此案受理谷歌的上诉。这也就意味着驳回了Google的上诉,维持了原判:判定 API 受版权保护,Google侵权。在美国最高法院做出不受理谷歌上诉的裁定后,这起诉讼将返回到旧金山联邦法院,由该院就谷歌另外提出的“合理使用”的辩护观点举行更多庭审。

这起诉讼的焦点在于,用于连接不同软件的应用程序接口 (API)是否也受版权法的保护。官司起因就是:甲骨文扫描了1500万行Android源代码,发现了9行代码是拷贝自Java。

这最具争议,最神奇的九行代码如下:

private static void rangeCheck(int arrayLen, int fromIndex, int toIndex) {

       if (fromIndex > toIndex)
           throw new IllegalArgumentException("fromIndex(" + fromIndex +
                      ") > toIndex(" + toIndex+")");
       if (fromIndex < 0)
           throw new ArrayIndexOutOfBoundsException(fromIndex);
       if (toIndex > arrayLen)
           throw new ArrayIndexOutOfBoundsException(toIndex);
   }

其实这九行代码都是出自同一个人:Joshua Bloch,是一位Java大牛。他的经历如下:

早在1996年,适逢 Java 刚刚崭露头角。先是1月份发布JDK1.0,然后是5月底在旧金山召开首届JavaOne大会,年末又是JDK1.1紧跟其后。正是在Java技术如火如荼、大展拳脚的背景之下,JoshuaBloch来到了Sun。2004 年7月初,就在J2SE5.0发布在即,Jusha Bloch刚刚荣获Sun“杰出工程师(Distinguished Engineer)”的称号之时,他突然离开Sun而去了正值发展态势迅猛的Google,成为了Google的Java首席架构师。在离开Google之前他一直是Dart平台和Dart语言核心库的主要架构师,2012年8月23号Joshua Bloch离开了Google,对于Dart应该不至于是个毁灭性地打击,但肯定是一个巨大的损失。

事件回顾完毕,回到今天的事情上来,据悉:谷歌将在下一代Android系统Android N中用甲骨文(Oracle)公司的开源代码OpenJDK来替代后者的Java APIs,此事最先在上个月由Hacker News贴出的一段神秘安卓代码库露出,目前VentureBeat已得到谷歌的正式确认。

官方回应如下:

作为一个开源平台,Android建立在合作共生的开源社区之上。在下一版的Android系统之中,我们计划将Java语言库替换为以OpenJDK为基础创造出来的通用代码库,便于让开发者开发app和服务。谷歌常年为OpenJDK做贡献,未来还将继续下去。

其实在公理上谷歌是理亏的,此举想必也是迫于压力与常年消耗战带来的疲惫。虽然OpenJDK是Java SE的中的代码,同样隶属于甲骨文,但它是开源的,且Java SE在2007年诞生之时甲骨文还没有收购Sun Microsystems、拥有Java。Android提供一些Java API代码库来支持开发者用Java编程语言开发应用,主要分为两部分:代码库的APIs,以及谷歌为了让代码库工作而开发的执行代码。甲骨文拥有Java,并有两个这种代码库:专有JDK和开源OpenJDK。谷歌使用的是后者,并已在某些领域有了应用,意味着其将分享这些执行代码。

安卓代码库中出现了神秘的代码提交,修改了 8902 个文件,从这段代码库的改动可以看出OpenJDK代码已经被加进Android:

Initial import of OpenJdk files.
Create new libcore/ojluni directory with src/main/java and src/main/native subdirectiories.
Build ojluni into core-oj jar.
Use openjdk classes from java.awt.font package.
Copy all files from jdk/src/share/classes and jdk/src/solaris/classes directories in openjdk into libcore/ojluni/src/main/java.
Copy following native files from openjdk to libcore/ojluni/src/main/native: [long list of files]

虽然官司尚未结束,但是审判结果将会在科技界产生重大影响,如果甲骨文胜诉,科技巨头们将不再能随意使用存在版权的API包了,谷歌若是败了,将损失数十亿美元。

原文发布于微信公众号 - 非著名程序员(non-famous-coder)

原文发表时间:2015-12-30

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏云计算D1net

揭短:国内云存储“毛病”不少

前段时间,云存储领域,由“1T空间”引发了一场“血案”,云存储服务商争相竞争,打得不可开交!360、百度、天翼云、金山云存储、微云等相继进行用户争夺,标志着一个...

5485
来自专栏FreeBuf

黑科技再现 | 黑客通过智能水壶窃取Wifi密码

The Pen Test Partners的研究员Ken Munro,在伦敦某场节目里他演示了如何连上目标的智能水壶,然后窃取你的Wifi密码。 轻松黑掉你的智...

2257
来自专栏程序人生 阅读快乐

Web渗透测试:使用Kali Linux

Kali Linux是专业的渗透测试和安全审计工具,是世界上最流行的开源渗透工具包BackTrack的继任者。本书将教会读者怎样像真实的攻击者一样思考,以及理解...

2862
来自专栏知晓程序

本周最新 10 款小程序,快来选出你最爱的那个 | 晓榜 #21

如果感到无聊,不妨用「微博热门」小程序,看看最流行的微博,热门资讯、搞笑视频,总有一款是你爱的。

591
来自专栏python开发者

Android和Linux应用综合对比分析

原文地址:http://www.cnblogs.com/beer/p/3325242.html 免责声明:     当时写完这篇调查报告,给同事看了后,他觉得...

4666
来自专栏FreeBuf

入侵监狱网站篡改记录帮朋友提前释放?结果自己也进去了

上周一名密西根人因入侵Washtenaw县监狱被捕,原因竟然是他想修改监狱记录,好让朋友提前释放。 这名男子名叫Konrads Voits,27岁,来自密西根...

2325
来自专栏Jerry的SAP技术分享

SAP数据中心概述

Jerry的前一篇文章企业数字化转型与SAP云平台介绍了SAP云平台在企业数字化转型中的重要地位和作用。作为一个平台即服务(PaaS)解决方案, SAP云平台实...

2032
来自专栏IT派

Python下载网易云音乐厉害? 骚操作竟能撩妹!!

IT派 - {技术青年圈} 持续关注互联网、区块链、人工智能领域 大家都知道python很火 而且这把火已经烧到了互联网圈子外了 小学生要学Python,高...

4626
来自专栏安智客

关于eID你需要了解的是?

公安部第三研究所在2017年国家网络安全宣传周上,展示了网络电子身份标识(eID),今天我们来聊一聊eID。 ? 什么是eID? 类似于FIDO联盟的干掉密码...

3026
来自专栏程序人生 阅读快乐

高性能MySQL第2版中文版.施瓦茨.扫描版.pdf

本书荣获2009年Jolt图书大奖,是不可多得的分享MySQL实用经验的图书。它不但可以帮助MySQL初学者提高使用技巧,更为有经验的MySQL DBA指出了开...

923

扫码关注云+社区