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

64 投票
8 回答
20830 浏览
提问于 2025-04-15 17:35

理论上,Dalvik可以执行任何虚拟机字节码,比如那些通过以下编译器生成的字节码:

  • AspectJ
  • ColdFusion
  • Clojure
  • Groovy
  • JavaFX Script
  • JRuby
  • Jython
  • Rhino
  • Scala

现在有没有其他语言(除了Java)可以为Dalvik提供有效的字节码编译器?

8 个回答

8

Kawa 是一种不太为人所知但非常不错的 Scheme 变种,已经默默存在了很多年,可以在 JVM 和 Dalvik 上直接运行。也就是说,它的输出不需要额外的虚拟机,只包含那些你明确导入的库。对程序员来说,这意味着 Kawa 的性能和可执行文件的大小几乎和标准 Java 一样(不需要使用 ProGuard)。

Kawa 还包含很多宏(其中一些是专门为 Android API 设计的),这让它的语法看起来很简洁(前提是你不介意使用括号),并且在 Scheme 的基础上增加了一些有趣的功能,比如“承诺”(将懒惰求值和未来值结合在一起)。这个语言非常强大,文档也很完善,自 Java 早期以来一直在积极维护和不断发展。

Java Advent Calendar 用一些有趣的例子和链接总结了 Kawa 的优点。

25

Scala的表现非常不错。

我正在用Scala编写我的Android应用项目(这是一个有中文截图的网站源代码在GitHub上),而且环境设置起来很简单(不需要IDE,使用SBT作为构建工具)。

它可以访问Android SDK中的所有API,所以在Java中能做的事情,在Scala中也都能做到。

你可以查看这篇博客文章,了解如何用Scala和SBT构建Android应用。

63
  • 在最开始的时候,Java 是唯一被官方支持的编程语言,用来开发可以分发的第三方安卓软件。

  • 安卓原生开发工具包(Android NDK)允许开发者使用 CC++ 来构建安卓软件组件。

  • 除了支持原生代码,谷歌还在扩展安卓,以支持流行的动态脚本语言。本月初,谷歌推出了安卓脚本环境(ASE),这让第三方开发者可以用 perlJRubyPythonLUABeanShell 来构建简单的安卓应用。如果想了解 ASE 的用法,可以参考这个示例链接

  • Scala 也得到了支持。如果想看一些 Scala 的例子,可以参考这些示例链接-1示例链接-2示例链接-3

  • 我刚刚看了一篇文章,里面有一些有用的信息,比如:

    1. 编程语言是 Java,但也有其他语言的桥接,比如 (C# .net - Mono, 等)
    2. 可以运行像 LUAPerlPythonBeanShell 这样的脚本语言。
  • 我还读了第二篇文章,内容在谷歌发布的“简单”安卓编程语言中。想看这个的例子,可以参考这里

  • 刚刚(2010年8月2日)我读到一篇关于“Frink编程语言和安卓计算工具”的文章,可以参考这些链接链接-1链接-2

  • 在2010年8月4日,我发现了关于RenderScript的内容。简单来说,它是一种类似于C的语言,用于高性能图形编程,可以帮助你轻松编写高效的视觉效果和动画在你的安卓应用中。不过它还没有发布,因为还没有完成。

撰写回答