图解Oracle诉Google Android对Java的巨额侵权案

简介:

 树大招风。这句话用到 Google 现已占统治地位的移动操作系统 Android 身上再合适不过了。旷日持久的 Oracle 诉 Google 在 Android 中不 “合理使用” Java API 的巨额侵权案已经接近尾声。本周,一个 10 人陪审团正在旧金山进行闭门讨论,如果 Google 败诉的话,将面临高达 90 亿美元的天价赔偿。下面我们通过几张片子来梳理一下这个案件缘由。

图解Oracle诉Google Android对Java的巨额侵权案

 

Oracle 诉讼的主题是 Google 通过使用 Java API 来走 “捷径”。当时 Google 为了尽快占领移动市场,包括 Larry Page 和施密特在内的高层都给了 Android 之父 Andy Rubin 巨大的压力。但 Rubin 如果能按期交付的话,则可以拿到 6000 万美元的奖金。值得注意的是,当时的 Java 还属于较具开放精神的 Sun 公司所有,后来才被创始人以专断著称的 Oracle 收购(收购金额为 74 亿美元)。

 

图解Oracle诉Google Android对Java的巨额侵权案

 

Oracle 提出,在众多使用了 Java 的公司里面,只有 Google 的软件实现未经授权。而 Google 则提出那些公司的授权是不一样的,授权里面还包括了实现代码、商标以及 Java 品牌推广。

 

图解Oracle诉Google Android对Java的巨额侵权案

 

诉讼的焦点在于什么是 “合理使用”。Oracle 的代理律师提出合理使用有 4 个要素。1 是用途是否商业性,2 是是否具有创造性,3 是使用是否实质性(持续、规模),4 是使用是否对市场构成伤害。

 

图解Oracle诉Google Android对Java的巨额侵权案

 

Oracle 举例说明,像新闻报道、评论、教学等(红色打叉部分文字)可以算是合理使用,但 Android 不符合合理使用的任何特征。

 

图解Oracle诉Google Android对Java的巨额侵权案

 

关于商业性。Google 不否认 Android 是商用的,但声称其他因素更重要。Oracle 则重点攻击 Android 的盈利,指出 Android 已有 420 亿美元的收入。

 

图解Oracle诉Google Android对Java的巨额侵权案

 

Oracle 还引用当时的 Google CEOLarry Page 的话证明 Android 大获成功,2012年 他说 Android 每天的手机激活数为 70 万。

 

图解Oracle诉Google Android对Java的巨额侵权案

 

Oracle 的观点是 Android 里面的 Java API 是非法复制的代码。不同 Android 版本的代码量略有不同,但所有版本的 Android 都包含有非法复制的代码。(注 1:此间还引发了对什么是 API 的定义之争;注 2:Google 确认新版的 Android N 将弃用 Java API改用 Oracle 开源的 OpenJDK )

 

图解Oracle诉Google Android对Java的巨额侵权案

 

Android 的相关代码也不应该被认为是 transformative 的,因为其 Java API 执行的目的与 Java 的是一样的。

 

图解Oracle诉Google Android对Java的巨额侵权案

 

这张片子是想证明 Android 并非从零开始开发。Oracle 指出 Android 代码中只有 23%是自己写的(其中 9%还是空行),利用第三方开源的部分占了很大一部分。

 

图解Oracle诉Google Android对Java的巨额侵权案

 

Google 强调自由使用 API 是业界的通行做法,但 Oracle 试图证明 Google 是知道 Java API 是受版权保护的。

 

图解Oracle诉Google Android对Java的巨额侵权案

 

对 Google 不利的是 Oracle 弄到了 2010年 在 Oracle 发起诉讼前几天写给 Andy Rubin 的一封邮件,里面提到他们试过替 Android 和 Chrome 寻找 Java 以外的替代方案,但那些替代方案都很糟糕,所以需要协商 Java 的授权问题。

 

图解Oracle诉Google Android对Java的巨额侵权案

 

Oracle 试图用这张图说明 Google 欺诈的事实。上面是按照时间顺序摘录的邮件内容,比如 2006年Rubin 承认 “java.lang 是受版权保护的”;程序员 Dan Bornstein 督促源码里面要 “多删除几个 J 开头” 的代码;而一位 Apache Harmon 的程序员则指责 Android 剽窃 Oracle 的知识版权。

 

图解Oracle诉Google Android对Java的巨额侵权案

 

对于 Oracle 来说,一大麻烦是前 Sun CEO Jonathan Schwartz 站在了 Google 这边。他明确表示使用 JavaAPI 是可以的。但是 Oracle 以 Schwartz 私下在邮件中抱怨 Google 不受版权法约束为由说他欺诈。

 

图解Oracle诉Google Android对Java的巨额侵权案

 

控辩双方利用了各种隐喻手法。Google 把 API 比作饭店菜单,而 Oracle 则拿 API 跟系列小说的书名、章节标题、中心句相提并论—比方说像哈利波特这样的小说。

 

图解Oracle诉Google Android对Java的巨额侵权案

 

有关 API 是否需要足够创意从而受到版权保护已经尘埃落定。但 Oracle 仍然紧抓不放,尤其是副总裁 Mark Reinhold 出席作证时。(用想要什么样的类?类的关系应该如何考虑?方法的关联性应该怎样?需要什么样的结果?类之间的接口应该怎样?等问题说明 API 不是那么简单的。)

 

图解Oracle诉Google Android对Java的巨额侵权案

 

Oracle 敦促陪审团不要把侵权代码量(牵涉到 JavaAPI 的代码仅占 Android 1/10)作为量刑考虑。因为他们的专家称之为 “Android 的核心” 并作出了这幅软件关系图。

 

图解Oracle诉Google Android对Java的巨额侵权案

 

最后 Oracle 提出了一个很难令人信服的观点:如果没有 Android 的话 Java 的业务本来可以做得很大。这种图想要说明 Java ME(移动版的 Java)一度是很成功的,而他们视之为 Java SE 的衍生品。

 

图解Oracle诉Google Android对Java的巨额侵权案

 

Oracle 证人把 Android 对其 Java 授权业务的影响描述为 “毁灭性” 的(注:好吧,如果 Oracle 花了 74 亿美元收购 Sun 为的是通过 Java 授权赚回来的话)。Oracle CEO Safra Catz 作证称:

许多我们以前要授权才能拿到拷贝的公司因为用了免费的 Android 之后就不再买我们授权了。

 

图解Oracle诉Google Android对Java的巨额侵权案

 

基于 Java 的手机(功能机)与 Android 呈此消彼长之势是没有异议的。问题是,Google 有没有不正当竞争呢?

API 是否开源自由使用是本案的焦点。如果 Google 败诉的话,势必会改变今后软件开发的游戏规则,对如何利用版权法保护软件也将产生深远影响。这个案子的判决不仅关乎 Google 的利益、Android 的前途,从更广的意义来说,还影响着在这个日益关联的世界里的开发者未来如何生存的问题以及开源的未来,结果如何,我们拭目以待。 

 

本文转自d1net(转载)

相关文章
|
2月前
|
JSON Java 开发工具
Java服务端集成Google FCM推送的注意事项和实际经验
本文分享了作者在公司APP海外发布过程中,选择Google FCM进行消息推送的集成经验。文章详细解析了Java集成FCM推送的多种实现方式,包括HTTP请求和SDK集成,并指出了通知栏消息和透传消息的区别与应用场景。同时,作者还探讨了Firebase项目的创建、配置和服务端集成的注意事项,帮助读者解决文档混乱和选择困难的问题。
62 1
|
2月前
|
JSON Java 开发工具
Java服务端集成Google FCM推送的注意事项和实际经验
公司的app要上海外,涉及到推送功能,经过综合考虑,选择Google FCM进行消息推送。 查看一些集成博客和官方文档,看的似懂非懂,迷迷惑惑。本篇文章除了将我实际集成的经验分享出来,也会对看到的博客及其中产生的疑惑、注意事项一一评论。 从官方文档和众多博客中,你会发现Java集成FCM推送有多种实现方式,会让生产生文档很乱,不知作何选择的困惑。
94 0
|
3月前
|
Java Android开发 C++
🚀Android NDK开发实战!Java与C++混合编程,打造极致性能体验!📊
在Android应用开发中,追求卓越性能是不变的主题。本文介绍如何利用Android NDK(Native Development Kit)结合Java与C++进行混合编程,提升应用性能。从环境搭建到JNI接口设计,再到实战示例,全面展示NDK的优势与应用技巧,助你打造高性能应用。通过具体案例,如计算斐波那契数列,详细讲解Java与C++的协作流程,帮助开发者掌握NDK开发精髓,实现高效计算与硬件交互。
152 1
|
4月前
|
存储 搜索推荐 Java
探索安卓开发中的自定义视图:打造个性化UI组件Java中的异常处理:从基础到高级
【8月更文挑战第29天】在安卓应用的海洋中,一个独特的用户界面(UI)能让应用脱颖而出。自定义视图是实现这一目标的强大工具。本文将通过一个简单的自定义计数器视图示例,展示如何从零开始创建一个具有独特风格和功能的安卓UI组件,并讨论在此过程中涉及的设计原则、性能优化和兼容性问题。准备好让你的应用与众不同了吗?让我们开始吧!
|
4月前
|
Java 调度 Android开发
Android经典实战之Kotlin的delay函数和Java中的Thread.sleep有什么不同?
本文介绍了 Kotlin 中的 `delay` 函数与 Java 中 `Thread.sleep` 方法的区别。两者均可暂停代码执行,但 `delay` 适用于协程,非阻塞且高效;`Thread.sleep` 则阻塞当前线程。理解这些差异有助于提高程序效率与可读性。
84 1
|
4月前
|
Android开发
Cannot create android app from an archive...containing both DEX and Java-bytecode content
Cannot create android app from an archive...containing both DEX and Java-bytecode content
40 2
|
4月前
|
Java Android开发
解决Android编译报错:Unable to make field private final java.lang.String java.io.File.path accessible
解决Android编译报错:Unable to make field private final java.lang.String java.io.File.path accessible
540 1
|
4月前
|
开发工具 Android开发
上架Google Play报错:For new apps, Android App Bundles must be signed with an RSA key.
上架Google Play报错:For new apps, Android App Bundles must be signed with an RSA key.
128 1
|
4月前
|
IDE Java Linux
探索安卓开发:从基础到进阶的旅程Java中的异常处理:从基础到高级
【8月更文挑战第30天】在这个数字时代,移动应用已经成为我们日常生活中不可或缺的一部分。安卓系统由于其开放性和灵活性,成为了开发者的首选平台之一。本文将带领读者踏上一段从零开始的安卓开发之旅,通过深入浅出的方式介绍安卓开发的基础知识、核心概念以及进阶技巧。我们将一起构建一个简单的安卓应用,并探讨如何优化代码以提高性能和应用的用户体验。无论你是初学者还是有一定经验的开发者,这篇文章都将为你提供宝贵的知识和启发。
|
5月前
|
Java Android开发 C++
🚀Android NDK开发实战!Java与C++混合编程,打造极致性能体验!📊
【7月更文挑战第28天】在 Android 开发中, NDK 让 Java 与 C++ 混合编程成为可能, 从而提升应用性能。**为何选 NDK?** C++ 在执行效率与内存管理上优于 Java, 特别适合高性能需求场景。**环境搭建** 需 Android Studio 和 NDK, 工具如 CMake。**JNI** 构建 Java-C++ 交互, 通过声明 `native` 方法并在 C++ 中实现。**实战** 示例: 使用 C++ 计算斐波那契数列以提高效率。**总结** 混合编程增强性能, 但增加复杂性, 使用前需谨慎评估。
144 4

推荐镜像

更多