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

理论上,Dalvik执行任何虚拟机字节码,例如用编译器创build

  • AspectJ的
  • ColdFusion的
  • Clojure的
  • Groovy的
  • JavaFX脚本
  • JRuby的
  • Jython的
  • 犀牛
  • 斯卡拉

Dalvik的字节码编译器是否已经可以用于除Java以外的其他语言?

  • 在推出时, Java是唯一官方支持的用于构build可分配的第三方Android软件的编程语言。

  • Android本地开发工具包(Android NDK),它将允许开发人员使用CC++构buildAndroid软件组件。

  • 除了提供对本地代码的支持外,Google还将Android扩展到支持stream行的dynamic脚本语言 。 本月早些时候,Google推出了Android脚本环境(ASE) ,允许第三方开发者使用perlJRubyPythonLUABeanShell构build简单的Android应用程序。 有了ASE的想法和使用,请参考这个例子链接

  • 斯卡拉也支持。 有关Scala的示例,请参阅这些示例链接-1示例链接-2示例链接-3

  • 刚才我提到了一篇文章,在这里我发现了一些有用的信息如下:

    1. 编程语言是Java,但存在其他语言的桥梁(C# .net - Mono, etc)
    2. 可以运行像LUAPerlPythonBeanShell等脚本语言
  • 我已经阅读了Google发布的“简单”Android编程语言的第二篇文章。 例如, 请参考这个 。

  • 刚才(2010年8月2日)我已经阅读了一篇描述关于“ Frink编程语言和Android计算工具 ”的文章,请参阅链接Link-1Link-2

  • 2010年8月4日,我发现关于RenderScript 。 基本上,它被认为是一个C语言的高性能graphics编程,它可以帮助您轻松地在Android应用程序中编写高效的视觉效果和animation。 它还没有发布,因为它没有完成。

斯卡拉工作得很好。

我正在使用Scala编写我的Android应用程序项目( 网站用中文写的一些屏幕截图 , 源代码@ GitHub ),并且安装evnviroment(没有IDE,使用SBT作为构build工具)非常容易。

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

您可以查看此博客条目 ,了解如何使用Scala和SBT构buildAndroid应用程序。

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

Kawa还包含许多macros(包括一些特定于Android API的macros),这些macros使用了一个很好的干净的语法(假设不违反括号),并且在Scheme的基础上增加了一些好吃的东西,比如“promises”(懒惰的eval和futures在一个)。 该语言相当强大,文档丰富,自Java早期以来一直在积极维护和发展。

Java Advent日历通过一些有用的例子和链接总结了Kawa的优点。

我还没有玩过,但我知道斯卡拉的作品。

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

另一个适用于Android的JVM语言是来自Jetbrains的 Kotlin和Anko 。

Mercury也可以在Android上使用它的Java后端。 我已经写了一个简单的应用程序 ,可以帮助别人开始使用(还有其他几个例子),而且水银android-helper也是用于这个目的的(尽pipe在这个时候,它只是简短的几个提交,而且都没有使用ProGuard但是, .apk大小令人震惊。)

虽然这里的其他post对于Scala-on-Android很开心,但是Scala论坛的海报更关注于Scala打破Dalvik的一些限制的能力,而那些使用它的人说,他们会保留它用于非生产代码。 (这里有一些关于Scala问题的讨论。)

我还不能说,如果水星在Dalvik有自己的问题,但我暂时从Scala切换到它。

dynamictypes的语言将不可能,直到Dalvik支持JIT(Just In Time)编译。 我相信有一个实验性的Eclair分支有JIT支持,但是它还没有在Android上正式提供/支持。

现在有一个免费的Pascal编译器,可以为Android平台创build可执行文件。

  • 简短摘要: 使用Pascal和Eclipse开发Android
  • 博客文章分步指南: 使用Pascal和Eclipse开发Android

有了这个解决scheme,开发人员几乎可以访问整个Eclipse和Android工具集。 这不仅包括完整的Android小部件集和用于布局它们的graphicsdevise器,还包括访问完整的Android运行时。 Eclipse IDE也将构build可执行文件并启动Android模拟器(使用Run As | Android应用程序)。