为什么Android使用Java概念而不是D语言或C或C++?但Chromium网页浏览器采用的是C++,它非常复杂

8 c java compiler-construction android d

Android是32位ARM.维基

描述:

1)因此,32/64或8/12/16位编译器可用D语言,如果它不能由编译器构建,如果我没有错?

2)Linux标准内核:用C和其他语言编写的库可以用D语言编译成ARM,我相信,不仅D语言也可以用C/C++.

根据Android维基信息开始我的困惑:

  • 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 /诺基亚的实施有什么不对吗?

问题:为什么Android不运行JVM但是他们构建Java概念会做另外的JVM处理,而不是像MeeGo或其他人那样做.这是一个营销术语还是一个技术术语?它不能用C/C++或D语言编写整个Android吗?而不是涉及Java概念或混乱概念?

如果是,那么Chromium-web浏览器为什么再次使用C++?为什么不跟着Java一起使用Chromium-web?

它的全部内容都是为了了解它如何在实际生活中得到应用,对我而言,只是为了知道为什么他们为Android做了这样的混乱?那么我们是否在大学中错误地学习编程语言(后来才知道,大谷歌刚刚使用Java for Android)?

在此先感谢您对此的宝贵建议.

Ste*_*n C 15

为什么Android不是用D或C/C++语言编写的?

因为它们都不是完全托管的语言.D 垃圾收集,但您也可以进行手动内存管理......以及所需的所有风险.

此外,因为从Java库(以Apache Harmony等形式)开始意味着:

  • Java开发人员将能够过渡到Android,和
  • Android开发团队实施的内容会更少.

然而,正如@Marchy指出的那样,最初做出决定的不是谷歌:

" ...谷歌没有构建Android.[Android Inc]是他们购买的初创公司,作为一家创业公司,你可以利用其中的任何东西进行优化,以获得更快的动力和非常有限的资源....... "

虽然谷歌显然有所作为,但自从(根据维基百科)谷歌在收购之前帮助资助Android公司.

为什么Android不运行JVM,但是他们构建Java概念会做另外的JVM处理.

最终,因为Sun/Oracle对Java语言和平台的限制会使Google无法以Android的方式进行创新.具体而言,Sun/Oracle不会授权供应商在移动平台上实施Java SE.

那么我们是否在大学中错误地学习编程语言.

也许做到了!!

但是当我在大学学习编程时,我完全知道我从未使用过一些我所教过的语言.例如,我从未使用过Algol-60,Simula-67,SNOBOL或CDC汇编语言.但这并没有使他们被教授的原因无效,也没有使我在学习它们时获得的宝贵经验教训无效.

  • 是的......但真正的问题是编程语言决策(一般来说)基于**更重要的**标准而不是各自语言的纯技术优点. (5认同)
  • 伙计们不要忘记谷歌没有构建Android.这是他们购买的一家创业公司,作为一家创业公司,您可以利用其中的任何内容进行优化,以获得更快的动力和非常有限的资源.从体系结构的角度来看,Android存在许多重大的核心错误,例如业余演示框架,由于缺乏MVC(及其单一运行活动ASSUMPTION)而严重限制了UI复杂性.没有经验丰富的演示框架架构师会曾经允许这样的限制 - 结果是应用程序无法实现与iOS等平台相当的用户体验. (2认同)