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

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

我决定开始为Android编码。在做出决定之前,我花了很多时间来提高我的Java技能(希望它将对我的Android开发有所帮助)。我希望它也可以为Android开发服务。今天,在打开一些类(例如HashMap)后,我发现Android实现与“常规”实现中看到的实现不同。有人可以向我解释为什么与GUI和触摸无关的类需要在Android中以不同的方式实现吗?为什么不使用已经存在的同一个类呢?我在论坛上搜索答案,但没有找到任何原因。如果问题已经提出,我将很高兴获得它的链接并锁定帖子。

java android implementation
2个回答
0
投票

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


0
投票

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

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

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

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

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

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

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