【发布时间】:2011-04-09 14:21:10
【问题描述】:
Android 是 32 位 ARM。 wiki
说明:
1) 那么,32/64 或 8/12/16 位编译器可用于 D 语言,如果不是它可以由编译器构建,如果我没记错的话?
2) Linux 标准内核:用 C 和其他语言编写的库我相信可以用 D 语言编译成 ARM,不仅 D 语言也可以用 C/C++ 编译。
根据 Android wiki 信息开始我的困惑:
wiki:Linux 内核的修改版本(不是 linux,而是修改后的 linux,因为硬件兼容性?所以我不能使用 RPM 打包?因为它不再是标准的 linux?)
wiki:虽然大多数 Android 应用程序都是用 Java 编写的,但平台中没有 Java 虚拟机,并且不执行 Java 字节码。 Java 类被编译成 Dalvik 可执行文件并在 Dalvik 虚拟机上运行。 Dalvik 是专为 Android 设计的专用虚拟机,并针对内存和 CPU 有限的电池供电移动设备进行了优化。可以通过第三方应用程序提供 J2ME 支持。
问题:为什么只有 Android 不是用 D 或 C/C++ 语言编写的? 这是唯一一家证明他们需要 Bigtable 的公司,而不是处理所有这些混乱(世界还无法解决该问题),而且移动平台也需要改变,比如 Android?那么 iPhone/Nokia 的实现有什么问题呢?
问题:为什么 Android 不运行 JVM,但他们构建了一个 Java 概念来替代 JVM 处理,而不是像 MeeGo 或其他那样做同样的事情。 这是营销术语还是技术术语?难道不能只用整个Android用C/C++或D语言编写吗?而不是涉及Java概念或Mess概念?
如果是,那么 Chromium-web 浏览器为什么他们再次使用 C++?为什么不把 Java 也用于 Chromium-web?
这一切都是为了了解它是如何在实际生活中得到应用的,对我来说,只是想知道他们为什么要为 Android 做这样的烂摊子?那么我们是不是在大学里学习编程语言的方式错了(后来才知道,哦,Big Google 只是在 Android 上使用 Java)?
提前感谢您对此提出宝贵建议。
【问题讨论】:
-
这对我来说像是在咆哮。
-
这个问题有太多误导的陈述,我不知道从哪里开始。
-
还需要注意的是,Android 可以在 ARM、MIPS 和 x86 上运行。 Java/Dalvik 意味着一个应用程序可以在所有这些处理器上运行,而不必为每个处理器编译一次。此外,您可以使用 NDK 为 Android 编写 C/C++(不确定 D)。 (其中一些可能是新问题,因为您发布了问题)
标签: java android c compiler-construction d