Google和Oracle纷争始末:为何安卓开发用Java?

投稿时间:2020-12-31  消息来源:  提交者:笑傲江湖

编者按:2018年3月,Google 和 Oracle 纠缠多年的“Java侵权案”有了最终的判决结果。Google 在此次对决中败诉,并可能需要支付高达88亿美元的赔偿金。这个案件还引发关于 API(应用程序编程接口)是否应该受版权保护的争议。
FGQ蔷薇网

FGQ蔷薇网


其实早在2010年8月,Oracle 就已经向法院起诉 Google 侵权,声称 Google 在开发 Android 平台时未经授权就使用了 Oracle 的 Java 应用编程接口数据包。
FGQ蔷薇网


另外,虽然 Google 当年为避免版权问题而重写了Java API,却意外地使用了和 Oracle JDK 相同的一小段代码,这使得 Google 陷入不利的局面。
FGQ蔷薇网

“价值88亿美元的天价代码”
FGQ蔷薇网


正是由于 Google 在 Android 平台上使用 Java 时并未和 Sun 公司达成授权协议,造成了巨大的隐患,尤其是在 Oracle 收购 Sun 公司之后。
FGQ蔷薇网


那么,当初 Google 为什么要选择 Java 作为 Android 应用开发的语言呢?
FGQ蔷薇网


2007年11月,Google 首次向外界展示自家的 Android 操作系统。那时候,新生的 Android 生态非常薄弱,还要面对 Symbian, iOS, Windows Mobile 等强大的对手, 迫切需要吸引大量开发人员来参与其生态建设,因此必须选择比较热门的编程语言。
FGQ蔷薇网


选择 C++ 如何?当时移动操作系统的霸主还是Symbian OS,也就是我们熟知的“塞班”,其原生应用就是用 C++ 编写的。虽然 C++ 不失为优秀的开发语言,被广泛应用于桌面系统的软件开发,但在移动平台上的应用确实存在不少弊端。首先,要使用 C++ 编写出高质量的 APP,就要求开发者对内存分配、多任务调度等机制有足够深刻的理解,其难度之大可想而知。此外,用 C++ 编写的塞班应用甚至需要针对不同机型进行适配 ,这对于开发者和用户来说都是非常不便的。
FGQ蔷薇网


在这种情况下,以良好的可移植性著称的 Java 自然成为了比较理想的选择。Android 设备机型众多,使用 Java 有助于开发者摆脱硬件差异带来的许多困扰。再加上 Java 聚集了庞大的开发者群体,有利于快速建设 Android 生态。
FGQ蔷薇网


不过,Google 并没有直接将 JVM 直接搬到 Android 上。为了针对移动设备进行优化,提高程序运行速度,Google 另外造了一个名为Dalvik 的虚拟机来运行 Java 编写的 Android 应用。需要指出的是,Dalvik 并不支持运行普通的 Java 程序,所以在严格意义上它并不是 JVM。自然地,Google 没有获得 Sun 公司的 Java授权,也就为后来的一系列诉讼埋下伏笔。
FGQ蔷薇网


Android 与 Java 的关系将何去何从?
FGQ蔷薇网


在和 Oracle 漫长的斗争中,Google 已经开始远离 Java。2015年,Google 宣称在新的 Android 系统中已全面改用 OpenJDK。2017年,Google 更是宣布将 JetBrains 公司开发的 Kotlin 语言作为 Android 平台的一级开发语言。
FGQ蔷薇网


Kotlin 是一种支持多种编译方式的静态语言,能够将代码编译为 Java 字节码。相比 Java,Kotlin 在语法上做了一些改进,并增加了语法糖。对于 Java 程序员来说,跳转到 Kotlin 这门新语言不需要花费很大的力气。
FGQ蔷薇网


尽管如此,相信在未来相当长的一段时间内,Java 对于 Android 平台的巨大影响力依然存在。
FGQ蔷薇网


Oracle 或成最大赢家
FGQ蔷薇网


2009年4月,Oracle 公司宣布以74亿美元的价格收购 Sun公司,Sun 公司旗下的 Java 自然归 Oracle 所有。而如今 Oracle 通过 Java 这张牌向 Google 索取高达88亿美元的赔偿费,倘若 Google 不再上诉,Oracle 自然成了最大赢家。
FGQ蔷薇网


不过,经历这一事件以后,Oracle 在行业内更加饱受指责。近年来,Oracle 公司对开源界并不友好。当数据库软件 MySQL 的所有权落入 Oracle 手中以后,开源社区担心 MySQL 被闭源,另外维护 MariaDB 作为其分支;四年前,Oracle 开始利用协议条款向其客户和合作伙伴追索 Java 许可费用。
FGQ蔷薇网


结语
FGQ蔷薇网


如今的 Android,已经成为全球第一大操作系统,平台上的应用数量突破百万,Java 在其发展道路上功不可没。无论两家公司的纷争结局如何,Android 和 Java 都不失为一对成功的组合。
FGQ蔷薇网

   顶一下    踩一下

共有 条评论

评论内容

记得先输入验证码,再发布评论哦!(点击验证码小图可以更新)