为什么Android的Java源代码实现与相同类的常规Java实现不同?

问题描述 投票:6回答:2

我决定开始为Android编码。在做出决定之前,我花了很多时间来提高自己的Java技能,希望它也可以帮助我进行Android开发。

今天,在打开一些类(例如HashMap)之后,我发现Android实现与“常规”实现不同。

有人可以向我解释为什么与GUI和触摸无关的类需要在Android中以不同的方式实现吗?为什么不使用已经存在的同一个类?

我搜索了一个答案,但没有找到答案。如果已经问过这个问题,我将很高兴获得它的链接并锁定帖子。

java android implementation
2个回答
2
投票

全部涉及版权,许可和大公司试图保护其“地盘”。

背景是Java最初是由Sun Microsystems开发的专有代码库。提供给开发人员的Java类库源代码已获得专有许可证的保护。

2007年,OpenJDK 6作为开源发布。 Google考察了OpenJDK,并与Sun商讨了许可问题,但他们认为最好基于已发布的Java语言规范和Java SE javadocs进行无尘室重新实现。除其他外,这使Google可以重新审视用户界面框架以及其他对移动平台至关重要的API。最终结果是大大优于Sun的Java ME产品。

但是Sun与Google之间的关系仍然很亲切。

然后,Oracle与Sun合并,并且企业文化发生了变化。甲骨文和谷歌之间发生了一场大官司,这破坏了甲骨文和谷歌在Java生态系统中进行重大合作的任何机会。

有关更多背景,请阅读以下维基百科文章:


0
投票

不同的SDK(甚至来自同一发布者)可以具有不同的类实现,但是对于大多数情况,标准类的行为应相同。多年前的差异甚至更大。

© www.soinside.com 2019 - 2024. All rights reserved.