美国最高法院将对甲骨文诉谷歌安卓代码案做出最终裁决。甲骨文和谷歌就Android代码问题发起诉讼至今已近10年。经过三审和两次上诉,诉讼最终打到了美国最高法院。期间,两大科技巨头耗费了无数人力和诉讼费用,也试图向非技术陪审团成员解释原因。但当地时间周三上午,这场旷日持久的战斗有望最终落下帷幕。 (图片来自ExtremeTech) 据悉,谷歌在最初开发安卓手机操作系统时,就决定兼容Java。相比之下,AppleiOS使用面向对象的Objective-C代码解决方案。 显然,这家搜索巨头希望借助强大且流行的社区力量,让Android与流行的Java编程语言互通,从而获得更大的竞争力。为此,该公司重构了多个JavaAPI,其中包括37个卷入法律纠纷的API。对于从Sun手中接过Java的甲骨文来说,是否有资格从Android手中咬下一块价值数十亿美元的肥肉,以及谷歌的语言兼容性是否涉及侵权,成为双方争论的两大焦点。 时隔10年,两家公司的高管发生了重大变化。当谷歌在2010年做出回应时,它还在处理7项专利和1项版权索赔。 但到2012年,争议已经减少到只有37个JavaAPI,包含大约11,500行代码。相比之下,Android主要版本的总代码量在120亿到140亿行之间。据说有争议的代码源自一个单独的逆向工程(所谓的CleanRoom)项目。当Google和SunMicrosystems倒闭时,这件事的重要性不言而喻。尽管甲骨文在2010年初才收购了Sun,但它在当年8月对谷歌提起了法律诉讼。 至于这里所说的应用程序编程接口(API),它特指软件编程中定义良好的一组交互,旨在提供对各种定义的库和其他功能的快速访问。 对于需要频繁调用的冗长代码,API可以极大地解放程序员的工作量,让他们可以在特定的基础上构建代码,而无需重新发明轮子。从技术上讲,谷歌本可以在Java编程上多做一些努力,以避免涉及争议的37个JavaAPI包。然而,这些已经涵盖java.lang和java.util的基本包提供了对数学运算或日期/时间等功能的支持。 问题是谷歌通过CleanRoom项目重构了这37套JavaAPI。就甲骨文而言,它并没有断言该公司全部复制了它们,而是指责“结构、顺序和组织”非常相似,以至于侵犯了该公司的版权。 不管这些API中的包、类型和方法,它们的名字都是一样的。用标准Java编写的代码不一定适用于Android,但非常接近。
