我可以在Android Dalvik上使用哪些编程语言?

时间:2010-01-03 11:35:32

标签: java python android scala dalvik

理论上,Dalvik执行任何虚拟机字节代码,例如使用

的编译器创建
  • AspectJ的
  • ColdFusion的
  • Clojure的
  • Groovy的
  • JavaFX Script
  • 的JRuby
  • 的Jython
  • 犀牛
  • Scala的

Dalvik的字节码编译器的工作版本是否可用于Java以外的其他语言?

8 个答案:

答案 0 :(得分:61)

答案 1 :(得分:24)

Scala非常适合。

我正在使用Scala(Website written in Chinese with some screenshotsource code @ GitHub)编写我的Android应用程序项目,并且很容易设置evnviroment(没有IDE,使用SBT作为构建工具)。

它可以访问Android SDK中的每个API,所以你可以用Java做任何事情,你也可以在Scala中做。

您可以查看此blog entry,了解如何使用Scala和SBT构建Android应用程序。

答案 2 :(得分:6)

Kawa是一个可爱但鲜为人知的Scheme变体,已经安静存在多年,并且在JVM和Dalvik上运行,本地。因此,其输出不包含额外的VM,仅包含显式导入的库。对于最终程序员来说,这意味着Kawa的性能和可执行文件大小几乎与标准Java相同(不需要ProGuard)。

Kawa还包含许多宏(包括一些特定于Android API的),这些宏形成了一个很好的干净语法(假设一个人不反对括号),并在Scheme之上添加一些好吃的东西,比如“promises”(懒惰) eval和期货一)。该语言非常强大且文档齐全,自Java早期以来一直在积极维护和发展。

The Java Advent Calendar总结了Kawa的优点以及一些信息性的例子和链接。

答案 3 :(得分:3)

我没玩过它,但我知道Scala有效。

http://www.scala-lang.org/node/160

答案 4 :(得分:3)

适用于Android的另一种JVM语言是KotlinAnko来自Jetbrains

答案 5 :(得分:1)

Mercury也适用于Android,使用其Java后端。我写了一个simple app来帮助某人开始(还有其他几个例子),mercury-android-helper也是为了这个目的(虽然在这个时刻,它只是一些提交。正在使用ProGuard,因此.apk大小令人震惊。)

虽然这里的其他帖子对于Scala-on-Android很开心,但Scala论坛中的海报更关注Scala能否克服Dalvik的一些限制,而使用它的人说他们为非生产代码保留了它。 (关于Scala问题的一些讨论here。)

我还不能说水星是否有与Dalvik有关的问题,但我暂时从Scala切换到它。

答案 6 :(得分:0)

在Dalvik支持JIT(Just In Time)编译之前,动态类型语言是不可能的。我相信在其中一个实验性Eclair分支中有JIT支持,但它尚未在Android中正式提供/支持。

答案 7 :(得分:0)

1)Angular + nativeScript

2)反应性