【问题标题】:Are Java for Android and Java for pc identicalJava for Android 和 Java for pc 是否相同
【发布时间】:2020-09-25 19:32:16
【问题描述】:

对适用于 Android 的 Java 与通常的“香草”的相似性感兴趣。

【问题讨论】:

    标签: java android


    【解决方案1】:

    Java 和 Android 中的 Java 是不同的东西。总的来说,这与事实相去甚远。这里的诀窍是:

    1. 就语法而言,Java 到处都是一样的
    2. 编译器也一样
    3. 那么差异就开始了,即:

    a) 并非所有标准的 vanilla Java 库都在 Android 中实现

    b) 根本区别:普通 Java 在标准 JVM 虚拟机中执行,而 Android 在完全不同的 Dalvik 虚拟机中执行(在更高版本的 ART (Android RunTime) 中,它使用与 JVM 不兼容的字节码 -所谓的 DEX 字节码。

    从技术上讲,它是这样工作的:

    • Proger 为纯 Java 编写代码
    • 然后使用常规 Java 编译器 (javac) 进行编译
    • 然后是开发系统(一般在后台不可见 给程序员)将生成的目标代码翻译成 Dalvik/ART 目标代码(dx/d8 停靠实用程序),附加 来自 Android API 的必要库,仅此而已。

    因此,从程序员的角度来看,他是在 Java 下编写的,虽然从技术上讲它不会完全是 Java...

    【讨论】:

      【解决方案2】:

      语法没有什么不同,但许多库调用不同。这是因为平板电脑或手机与台式机或服务器环境有很大不同。例如,您的桌面可能不使用 4G 或拨打电话。 Android 手机的用户界面与“标准”桌面应用程序中的用户界面完全不同。此外,与桌面环境不同,Android 应用程序仅针对一种操作系统 - Android。

      此外,Android 使用与 Oracle Java 不同的虚拟机,并且在支持的功能方面,它往往有点“落后”于 Oracle Java。例如,请参阅 thisthis

      【讨论】:

      • 一个小问题:除了 Android 之外,还有一些操作系统可以运行 Android 应用程序。 Chrome 操作系统就是一个例子。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多