Oracle收购Sun Microsystems的一个目的就是控制Java语言,而更为重要的则是其专利。在众多的大公司中,Oracle的一个眼中钉就是Google,其针对Android(及其Dalvik VM)的类Java编程语言导致其被Oracle指控,控告其违背了Oracle的专利与版权,甚至发现Oracle测试套件中的测试代码出现在了Google的仓库中。
这场争论由来已久,从最开始的132个声明降到了3个,接下来又进一步降到了仅仅2个专利,其中一个专利将于今年12月到期。
上个月,法官Paul Grewal让这两家公司尝试通过协商来解决问题。如果Oracle能够证明Google侵犯了其专利,那么Google将会支付280万美金。然而Oracle拒绝了,认为Google支付的太少。
这个数字是根据到今年底(RE38104到期日)Android收益的0.5%及到2018年4月(专利6061520的到期日)Android收益的0.015%计算出来的。值得注意的是,USPTO已经判定RE38104无效,但Oracle还会继续上诉。
最后一个专利(6061520)被USPTO判定为有效。由于这两家公司无法达成和解,因此Oracle期望证明Android违背了该专利,如果证实确实如此,那么Oracle会要求法庭确定赔偿额。该专利涉及到静态数组初始化的性能改进:
该专利表示了对传统的静态数组初始化的改进,这是通过减少虚拟机执行的代码量以静态地初始化数组来实现的。为了实现代码量的减少,在联合类文件时,预加载器会识别出所有方法并执行这些方法以确定他们所执行的静态初始化。接下来,预加载器会创建出一个表达式以标明方法所执行的静态初始化并将该表达式存储到.mclass文件中,然后替换掉该方法。这样,该方法的代码(包含了很多指令)就会被一个单独的表达式所替代,该表达式会指示虚拟机执行静态初始化,这样就会节省大量内存。虚拟机会被修改以识别出该表达式并对数组执行恰当的静态初始化。
这场官司一个有趣的副作用是它暴露出了Google在2008年到2011年间已经从Android上获得了5.5亿美元的收益。这表明截至到2011年底激活的2亿台Android设备帮助Google每年从每台Android设备上获得了超过10美元的收益。然而去年十月,Google的电话会议表明其移动平台产品(包括iOS的Google Maps)价值25亿美元。如果除去Android收益,那么Google从其他渠道所获得的收益只有不到20亿美元,比如说向Apple许可iOS平台的Maps数据。
这场官司从4月16日开始,预计将会持续8周时间。