为什么选择Java作为Android?


46

为什么选择Java而不是C ++之类的Android?我听说Java使用了大量内存,并且我认为低内存使用在移动设备上非常重要。在移动设备上使用Java而不是像C ++这样的语言有什么真正的优势?


29
关键点是,Android不是由Google启动的。谷歌购买了包括使用Java在内的Android。
世界工程师

2
@ZJR:Google使用的主要语言一直是Java,Python和C ++。Java早在Android之前就已经存在。
UncleZeiv

15
Android使用Java 语言不是 Java虚拟机,两者之间存在很大差异,甚至使用自己的字节码格式。这个问题的意图是有缺陷的,而且不是建设性的!

8
@JarrodRoberson我认为这是有建设性的,只要它不会演变成一场大战,但社区会说...
maple_shaft

5
我将根据有关历史重要性问题的元讨论重新开放。有关软件开发历史和相关主题的问题在此处成为主题,并增加了价值。鉴于这个问题的措辞及其答案,我认为这个问题非常适合这个社区。
Thomas Owens

Answers:


40

文章揭示了这种情况的一些情况。那篇文章中最相关的链接是this。因此,您拥有庞大的安装基础,其中包含许多了解该语言的程序员,并且该语言已在大学中广泛教授。C ++已从我学校的课程中删除,Java仍在这里。Java具有Java ME,该Java ME在其他手机上具有庞大的安装基础。我口袋里的Pantec Ease现在在屏幕角落有一个小咖啡杯。有人在乎那是什么吗?

这个答案对堆栈溢出覆盖它相当不错了。

SO答案总结:

Java是一种已知的语言,开发人员知道它,而不必学习它

用Java射击比使用C,C ++代码更难,因为它没有指针算术

它在vm中运行,因此无需为那里的每部电话重新编译它,并且易于保护

大量的Java开发工具(请参阅第一个)

Java我已经使用了几部手机,因此Java在业界已广为人知

对于大多数应用程序而言,速度差异不是问题,如果您应该在汇编中进行编码


1
啊,您击败了我,所以我只添加到您的列表中。我发现了另一个SO问题,这增加了选择Java的另一个原因(这是一种托管语言)。- stackoverflow.com/questions/5605575/...
绍纳

1
谢谢,这回答了我的问题。实际上,不必为每个不同的Android运行设备都重新编译,这似乎是选择Java的强大专家。我不知道为什么我没有想到这一点。谢谢!
cgt 2012年

2
鉴于市场已经分裂了许多Android设备,否则几乎无法应对。
世界工程师

3
这是正确的,但他们可以选择任何语言。他们甚至可以写一个新的。他们建立了虚拟机。Java确实具有明确定义的VM规范的优势。
Michael K

18

我可能会猜测,如果没有其他选择,Google会选择Java是为了熟悉。Google的许多项目至少都围绕Java原理图的概念(例如GWT)展开。

另外,这是一门在技术学校广泛教授的语言(与Javascript不同(Android也热衷支持))。就性能和生产而言,Java绝对不是最佳的移动设备语言,但众所周知。

还请记住,Android迟到了。强迫开发人员使用C ++(一种低级编译语言)会使生成“哇”的因素变得更加困难,并且如果没有其他要求,Android需要大量的(应用程序)和出色的功能来起步。


3
我喜欢您对应用程序开发的想法。我以前从没想过,但这是有道理的。+1
罗素

6
我认为在这种情况下,对Java的C ++厌恶与浮华和令人惊奇的因素无关,而与开发人员能够更快,更轻松地为市场编写应用程序的能力有关。在编写规范时,众所周知的是,iPhone的成功与Apple在使应用程序开发对开发人员具有吸引力方面的成功程度相关。对于大多数开发人员来说,C ++有点太难了,因此Java的最小性能损失是值得的。
maple_shaft

8
@maple_shaft:真的吗?在我看来,iPhone的成功始终取决于其应用开发的吸引力,而不是因为它的吸引力!
Carson63000

3
@maple_shaft:在这里必须同意卡森的观点。iOS开发是一场噩梦。有一个原因是苹果生态系统之外没有人使用Objective-C,而这甚至还没有涉及到苹果的彻头彻尾的邪恶术语,即涉及到实际尝试部署您创建的应用程序的时候……
Mason Wheeler,2012年

@Jeffrey,您为什么说Android支持JavaScript?
Pacerier 2014年

9

不确定为什么选择了Java,但这可能是出于多种原因

  1. 吸引大量熟悉和使用Java的开发人员

  2. 在Java等缺少Java的技术的情况下,填补Java的移动空白。

其次,没有为Android指定Java虚拟机。相反,所有Java代码都经过编译以在Dalvik上运行,Dalvik是专门为在移动环境中运行而设计的轻量级,优化的VM。据称,它可以延长电池寿命,并最大程度地提高资源的利用率。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.