【问题标题】:Why is the Java source code implementation for Android different from the regular Java implementation for the same classes?为什么 Android 的 Java 源代码实现与相同类的常规 Java 实现不同?
【发布时间】:2019-10-17 13:18:33
【问题描述】:

我决定开始为 Android 编写代码。在做出决定之前,我花了很多时间来提高我的 Java 技能,希望这对我的 Android 开发也有帮助。

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

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

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

【问题讨论】:

  • "为什么不使用已经存在的同一个类?"版权,主要是。
  • 可能值得为@JoopEggen 做出答案
  • @a_local_nobody 使用外部链接作为答案我会觉得很尴尬。
  • 谢谢大家.. @Federico klez Culloca,抱歉没有理解您的回复

标签: java android implementation


【解决方案1】:

这一切都与版权、许可和大公司试图保护他们的“地盘”有关。

背景是 Java 最初是由 Sun Microsystems 开发的专有代码库。向开发人员提供的 Java 类库源代码包含在专有许可证中。

2007 年,OpenJDK 6 作为开源发布。 Google 研究了 OpenJDK,还与 Sun 就许可问题进行了谈判,但他们认为最好根据已发布的 Java 语言规范和 Java SE javadocs 进行无尘室的重新实现。除此之外,这让谷歌能够重新审视用户界面框架,以及对移动平台至关重要的其他 API。最终结果大大优于 Sun 的 Java ME 产品。

但是 Sun 和 Google 之间的关系仍然很友好。

然后甲骨文与 Sun 合并,企业文化发生了变化。甲骨文和谷歌之间发生了一场大官司,这使得甲骨文和谷歌在 Java 生态系统中任何重大合作的机会都化为乌有。

有关更多背景信息,请阅读以下 Wikipedia 文章:

【讨论】:

    【解决方案2】:

    不同的 SDK(即使来自同一个发布者)可以有不同的类实现,但是标准类在大多数情况下的行为应该是相同的。几年前差异更大。

    【讨论】:

      猜你喜欢
      • 2018-12-06
      • 1970-01-01
      • 2021-02-15
      • 1970-01-01
      • 2016-11-09
      • 2016-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多