Google确认下一个Android版本将不会使用Oracle的Java API

简介:

在下一个Android版本中Google将会把应用程序接口(APIs)的实现替换为OpenJDK,它是Oracle私有的Java开发工具包(JDK)的开源版本。Google确认了Android N将会仅依赖于OpenJDK,而非Android自身实现的Java APIs。一位Google的发言人说:“最为一个开源平台,Android的构建是基于开源社区的合作。在即将到来的Android的下一个版本Android N,我们计划将所有Android的Java语言开发包用OpenJDK实现,从而为开发人员在构建应用程序和服务时提供通用代码库。Google是OpenJDK社区的长期贡献者,并且我们期待在未来为OpenJDK作出更大的贡献。”

Android提供了一定的Java API库,以支持使用Java语言来开发Android apps,这些库分为两部分:API库和Google开发的API库的实现代码。Oracle开发的Java,其API库由两种实现:专有的JDK版本和开源的OpenJDK版本。Google决定全面使用OpenJDK,其实Android在一些地方早已开始使用了,使用OpenJDK意味着要开源这部分的实现代码。

这个code commit表明修改了8902个文件,明确表示了OpenJDK代码被加进了Android中:

Initial import of OpenJdk files.

Create new libcore/ojluni directory with src/main/java and src/main/native subdirectiories.

Build ojluni into core-oj jar.

Use openjdk classes from java.awt.font package.

Copy all files from jdk/src/share/classes and jdk/src/solaris/classes directories in openjdk into libcore/ojluni/src/main/java.

Copy following native files from openjdk to libcore/ojluni/src/main/native: [long list of files]

Google一直希望Android开发者能够接受这些改变,因为它在开发apps时有助于简化代码 —— 使用单一共同的Java API代码库而非使用多代码库。这些原因可能是真实的,但并非完全转向OpenJDK的全部原因,如果是这样的话几年前Google早就这么干了。当Google发言人被问到为什么是现在,Google指出是去年发布的Java 8和Java语言的一些新特性例如lambdas。Google想要为OpenJDK投入更多资源,这样团队就能对新特性和技术改进有更大的影响力和发言权。

当然这其中还涉及大量的版权问题,代码的提交是否意味着Oracle和Google之间关于Java APIs的法律诉讼是否已经庭外和解,由于Oracle的诉讼还在进行,Google对于代码提交和诉讼是否有关拒绝作出评论。2010年1月Oracle收购Sun之后,Oracle在2010年8月起诉Google的版权和专利侵权,认为Android在未经授权的情况下使用了Java API。Google反驳称,APIs不受版权保护,因为它对于软件开发、协作和创新是必不可少的。在2012年5月,一个陪审团认为Java的API不受版权保护,Google对Oracle的专利侵犯不成立。2014年5月,联邦巡回上诉法院部分逆转了区法院的判决,认定Java API受版权保护。就在2015年6月,美国最高法院拒绝审理此案,案件发回下级法院继续审理。在这些与Oracle的对决之后,Google已经决定彻底拥抱OpenJDK了么?不管怎么样,结局是确定的:Android未来的版本将基于OpenJDK而非Oracle专有的JDK版本。

不管怎么样,案件还未结束,Google也无法改变现有的Android版本,业界人士对此案的裁决异常关注,因为这将对软件开发产生巨大的影响。如果Oracle胜诉,开发者基于现有应用和服务开发新的软件都将产生版权问题。如果Google胜了,APIs的使用将不会受到版权保护。

本文转自d1net(转载)

相关文章
|
22天前
|
移动开发 Java Android开发
构建高效Android应用:探究Kotlin与Java的性能差异
【4月更文挑战第3天】在移动开发领域,性能优化一直是开发者关注的焦点。随着Kotlin的兴起,其在Android开发中的地位逐渐上升,但关于其与Java在性能方面的对比,尚无明确共识。本文通过深入分析并结合实际测试数据,探讨了Kotlin与Java在Android平台上的性能表现,揭示了在不同场景下两者的差异及其对应用性能的潜在影响,为开发者在选择编程语言时提供参考依据。
|
1月前
|
Java 编译器 Android开发
构建高效Android应用:探究Kotlin与Java的性能差异
【2月更文挑战第30天】 随着Kotlin成为开发Android应用的首选语言,开发者社区对于其性能表现持续关注。本文通过深入分析与基准测试,探讨Kotlin与Java在Android平台上的性能差异,揭示两种语言在编译效率、运行时性能和内存消耗方面的具体表现,并提供优化建议。我们的目标是为Android开发者提供科学依据,帮助他们在项目实践中做出明智的编程语言选择。
|
27天前
Error:java.util.zip.ZipException: duplicate entry: com/google/firebase/iid/zzc.class ,EvalIssueExcep
Error:java.util.zip.ZipException: duplicate entry: com/google/firebase/iid/zzc.class ,EvalIssueExcep
7 0
|
29天前
|
Java 编译器 Android开发
构建高效Android应用:探究Kotlin与Java的性能差异
在开发高性能的Android应用时,选择合适的编程语言至关重要。近年来,Kotlin因其简洁性和功能性受到开发者的青睐,但其性能是否与传统的Java相比有所不足?本文通过对比分析Kotlin与Java在Android平台上的运行效率,揭示二者在编译速度、运行时性能及资源消耗方面的具体差异,并探讨在实际项目中如何做出最佳选择。
18 4
|
1天前
|
安全 Java 程序员
|
6天前
|
Java API Apache
ZooKeeper【基础 03】Java 客户端 Apache Curator 基础 API 使用举例(含源代码)
【4月更文挑战第11天】ZooKeeper【基础 03】Java 客户端 Apache Curator 基础 API 使用举例(含源代码)
24 11
|
7天前
|
安全 Java API
java借助代理ip,解决访问api频繁导致ip被禁的问题
java借助代理ip,解决访问api频繁导致ip被禁的问题
|
10天前
|
存储 安全 Java
说说Java 8 引入的Stream API
说说Java 8 引入的Stream API
12 0
|
10天前
|
分布式计算 Java API
Java 8新特性之Lambda表达式与Stream API
【4月更文挑战第16天】本文将介绍Java 8中的两个重要新特性:Lambda表达式和Stream API。Lambda表达式是Java 8中引入的一种新的编程语法,它允许我们将函数作为参数传递给其他方法,从而使代码更加简洁、易读。Stream API是Java 8中引入的一种新的数据处理方式,它允许我们以声明式的方式处理数据,从而使代码更加简洁、高效。本文将通过实例代码详细讲解这两个新特性的使用方法和优势。
|
11天前
|
安全 Java API
RESTful API设计与实现:Java后台开发指南
【4月更文挑战第15天】本文介绍了如何使用Java开发RESTful API,重点是Spring Boot框架和Spring MVC。遵循无状态、统一接口、资源标识和JSON数据格式的设计原则,通过创建控制器处理HTTP请求,如示例中的用户管理操作。此外,文章还提及数据绑定、验证、异常处理和跨域支持。最后,提出了版本控制、安全性、文档测试以及限流和缓存的最佳实践,以确保API的稳定、安全和高效。

推荐镜像

更多