点击上方“CSDN”,选择“置顶公众号”

关键时刻,第一时间送达!

作者 | 言则

责编 | 沭七

屈指算来,Google 与 Oracle 关于 Android 侵权 Java 的案件已经持续了 8 年之久,几次反复间,我们又迎来了新的裁定 —— 据路透社报道,美国联邦巡回上诉法院再次裁决,Google 使用 Java 开发 Android 系统的行为侵犯了 Oracle 的版权,Google 或面临需支付 88 亿美元的赔偿。

一边是全球最大的互联网企业,另一边是全球最大的数据库软件公司——自 2010 年开始,谷歌、甲骨文就 Android 系统是否对 Java 专利构成侵权、Java API 是否受版权保护问题上一直互不相让,各执己见。

谷歌 VS 甲骨文,案件始末回顾

在经历过几年的移动系统之战后,iOS 和 Android 已经成为了最主流的两大移动操作系统,更遑论 Android 因为其开源、开放的属性远超 iOS 市场占比。而 Java 以其跨平台和开源特性也是开发者世界中当之无愧的最热语言,尽管 Java 版本更新让开发者们颇为吐槽,但却一直雄踞编程语言排行榜屹立不倒。而 Google 与 Oracle 的长达 8 年的代码版权拉锯战的焦点,即在于 —— Google 在 Android 系统中使用了 37 个 Java API,双方关于这一行为是否构成侵权一直争论不休。

图片来源:onwardacademy

对于这个历史遗留问题,我们还需要回到 Java 诞生的起点 —— Sun 如日中天的时候。

Java 原本并不是 Oracle 的,而是由 Sun 公司团队完成最初的开发与发布,2009 年,Oracle 收购 Sun 从而获得了 Java 的版权。当然,Java 是有开源项目的,即 2006 年 Sun 公布的 OpenJDK,而非在那之前的 SunJDK(现在是 OracleJDK),谷歌侵权的对象恰好属于后者。

甲骨文认为谷歌 Android 系统抄袭了 37 个 Java API 代码段,而这些代码属于 Oracle 商业私有 JDK 的一部分。但谷歌方面认为,API 不应受版权保护,它只是一种操作方法,仅仅是一个程序与另一个程序通信的接口——API是否受版权保护?这正是整个开发者行业界备受争议的观点。

API 应用程序接口作为代码产物用于约定软件系统不同组成部分的衔接,其是否具有版权保护效力在开发者未有自主声明之情况下并无法律明文约束,这也成为本案裁决最大难题。

全案动态回顾:

2010 年 8 月,甲骨文起诉谷歌安卓系统侵权,要求赔偿 26 亿美元。

2011 年 9 月,双方 CEO 第一次庭外和解失败。

2012 年 3 月,甲骨文不接受谷歌 280 万美元赔偿方案。

2012 年 5 月,加州北区法院裁定安卓系统没有侵犯专利,Java API 不存在版权,谷歌赢得短暂胜利。

2012 年 10 月,甲骨文上诉至联邦巡回上诉法院。

2014 年 4 月,联邦上述法院判定 API 受版权保护,谷歌须赔偿侵权。

2014 年 10 月,谷歌不服判决,上诉至美国最高法院,遭驳回。

2016 年 4 月,双方庭外和解会议再次失败。

2016 年 5 月,旧金山联邦法院对该案复审。

2018 年 3 月,美国联邦巡回上诉法院裁决,谷歌侵犯了甲骨文的版权。

败诉的 Google 将面临 88 亿美元罚款? 

本周二,美国联邦巡回上诉法院再次裁决,谷歌使用 Java 开发 Android 系统的行为侵犯了甲骨文的版权。目前,案件已经移交加州联邦法院,等待最终裁决谷歌母公司 Alphabet 需要向甲骨文支付多少赔偿金。此前甲骨文索要的赔偿金为 88 亿美元,但是该公司也有可能提高所要求的金额。

谷歌对此结果表示了失望,并且表示正在考虑采取进一步的动作。

波士顿律师事务所的律师 Mark Schonfeld 表示:“这是一个重大的决定。法院的判决对于整个软件行业来说非常重要。我认为这件事最终会由最高法院裁决,因为联邦巡回上诉法院做出了一个争议很大的裁决。”

这场官司会不会杀死 Android 系统?

事件总体来看,谷歌的议词说服力明显较弱。虽然,Sun 公司的前任 CEO Jonathan Schwartz 也为其发声,“Sun 一直是一家自由且开放的公司”,他们一直觉得谷歌对这些 API 的使用没问题。但是“有理有据”的甲骨文赢面绝对是比较大的——即使谷歌不服从此次的判决,最终结果也是显而易见的。

事实上,无论法院最终做出什么样的裁决,谷歌与甲骨文的这场争端都会对软件打造方式和营销方式产生巨大的影响。这场官司已经将硅谷的软件从业人员分成了两派,其中一派认为使用他人代码开发软件这种做法本身并没有过错;而另一派则认为这种做法违反了法律。

那么,这场官司会不会杀死 Android 系统?想太多。谷歌从 Android N 版本开始就不再依赖私有的 Java API 了,而是以开源的 OpenJDK 取代之,现在的问题也就是赔多少钱的事了。

在 Google 和 Oracle 的争斗中,我们一直能耳闻诸如“Android 放弃 Java 的可能性有多大?”等的猜测,但实际上,无论是对于 Google 还是在 Android 生态上的众多开发者而言,放弃 Java 的可能性都非常微弱,尽管 Google 在去年将 Kotlin 选为 Android 官方语言,但是 Kotlin 的 API 依然比 JDK 逊色很多,一定程度上依然依赖。

同理,尽管 Google 面临着巨额赔偿,但是 Android 开发者还是可以安心地用 Java 开发各种应用。

相关链接:

  • http://www.bloomberg.com/news/articles/2018-03-27/oracle-wins-revival-of-billion-dollar-case-against-google

  • https://arstechnica.com/tech-policy/2018/03/googles-use-of-the-java-api-packages-was-not-fair-appeals-court-rules/

  • http://www.wired.com/2016/05/oracle-google-case-will-decide-future-software/

  • http://www.chinaz.com/news/2016/0525/534402.shtml

  • http://www.techweb.com.cn/internet/2016-05-18/2334276.shtml

————— 推荐阅读 —————

点击图片即可阅读

Android 违规使用 Java,谷歌或面临 88 亿美元赔款相关推荐

  1. Docker创始人兼CTO宣布离职;特斯拉被爆处于破产边缘;iOS更新,支持京沪地铁卡;谷歌安卓侵权案面临88亿美元赔款丨Q新闻...

    点击关注 InfoQ,置顶公众号 接收程序员的技术早餐 编辑|小智 本周要闻:Docker 创始人兼 CTO 宣布离职:Android 使用 Java 侵犯甲骨文版权,谷歌或赔 88 亿美元:库克批评 ...

  2. Android面试:Java相关

    Android面试常见Java相关问题. 原文链接:http://www.nowcoder.com/discuss/3244 Switch能否用string做参数? 在 Java 7 之前, swit ...

  3. 给Android工程师的Java后台学习建议

    给Android工程师的Java后台学习建议 作为一个原生Android开发,一路走来经历了Java . Kotlin的洗礼:在"原生要凉"的氛围下学习Cordova.ReactN ...

  4. Android客户端和Java服务器端集成支付宝

    移动端集成支付,似乎是每个App都可能面临的一件事.所有项目都在谈盈利模式,而从C端获取现金流是盈利中最重要的一个途径之一. 当前大家主要采用微信支付和阿里支付集成到自己的移动应用,虽然官方提供一些文 ...

  5. Sun 公司的 Java 跟 Android 使用的 Java 库有什么关系?

    全文重点罗列 Java 是 Sun 公司开发的一门语言,同时 Java 也是一个开放平台. Sun 公司为 JVM 发布了 JVM 规范,任何公司都可以按照此规范开发 JVM 语言,如现在的 Kotl ...

  6. Android DialogFragment 遇到 java.lang.IllegalStateException: Fragment already added: 的解决方法

    Android DialogFragment 遇到 java.lang.IllegalStateException: Fragment already added: 的解决方法 参考文章: (1)An ...

  7. 【Android架构师java原理详解】二;反射原理及动态代理模式

    前言: 本篇为Android架构师java原理专题二:反射原理及动态代理模式 大公司面试都要求我们有扎实的Java语言基础.而很多Android开发朋友这一块并不是很熟练,甚至半路初级底子很薄,这给我 ...

  8. android引用的java包_Android开发中jar包的创建及引用

    jar包有两种,一种是纯粹的库功能,没有main入口函数,故无法直接执行:一种是包含main的可执行包! 如有hello/hello.java文件: $ cd hello/$ javac hello. ...

  9. Android如何在java代码中设置margin

    Android如何在java代码中设置margin,也就是组件与组件之间的间距. 代码中设置: LinearLayout.LayoutParams params = new LinearLayout. ...

最新文章

  1. hadoop写文件 java_写文件 - Hadoop 学习手册_教程_Java开发社区
  2. Win10双系统CentOS7安装完无法启动Win10的解决方法
  3. 《UNIX环境高级编程》--符号链接
  4. Python: ImportRequestsError: No module named 'requests'解决方法
  5. 原神服务器维护后抽奖池会更新吗,原神:武器池改动,玩家的诉求再次得到反馈!PS端将与官服互通!...
  6. php-cli下载,php-cli-color
  7. ST7789V2 LCD驱动芯片
  8. 【LeetCode笔记】79. 单词搜索 剑指 Offer 12 矩阵中的路径(Java、dfs)
  9. 在Javascript中闭包(Closure)
  10. drupalchina--如何翻译及如何上传翻译的内容?
  11. java rest httpclient_Httpclient与RestTemplate的比较(比httpClient更优雅的Restful URL访问)...
  12. 开源web管理系统mysql_10个基于Web的开源项目管理系统
  13. 【智能无线小车系列八】在树莓派上使用USB摄像头
  14. 深入理解Java虚拟机——可视化监控工具(Jconsole)
  15. 脊柱外科患者资料管理系统
  16. 微信公众号引流的十种方法
  17. 带你玩转 3D 检测和分割(一):MMDetection3D 整体框架介绍
  18. 新版标准日本语初级_第三十九课
  19. matlab 极限积分,实验二MATLAB中的极限和微分积分运算
  20. 越南语常用的计数词,多少钱用越南语怎么说

热门文章

  1. 【图像处理】MATLAB:亮度变换
  2. Flutter基础—第一个Flutter实例
  3. 专业零售商行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
  4. php按钮鼠标感应就变色,JavaScript_JS实现网页滚动条感应鼠标变色的方法,本文实例讲述了JS实现网页滚 - phpStudy...
  5. 【IT】关于Code打卡机时遇到的问题及解决
  6. 谷歌:开源捐赠需分成,否则下架!
  7. 不是吧?!程序员月入10w,原因竟然是这个......
  8. 别再问如何用 Python 提取 PDF 内容了!
  9. 推荐系统经典模型 Wide Deep 论文剖析
  10. 为什么这款 CPU 在亚马逊上卖得最火?