在Android Dalvik上可以使用哪些编程语言?
理论上,Dalvik可以执行任何虚拟机字节码,比如那些通过以下编译器生成的字节码:
- AspectJ
- ColdFusion
- Clojure
- Groovy
- JavaFX Script
- JRuby
- Jython
- Rhino
- Scala
现在有没有其他语言(除了Java)可以为Dalvik提供有效的字节码编译器?
8 个回答
Kawa 是一种不太为人所知但非常不错的 Scheme 变种,已经默默存在了很多年,可以在 JVM 和 Dalvik 上直接运行。也就是说,它的输出不需要额外的虚拟机,只包含那些你明确导入的库。对程序员来说,这意味着 Kawa 的性能和可执行文件的大小几乎和标准 Java 一样(不需要使用 ProGuard)。
Kawa 还包含很多宏(其中一些是专门为 Android API 设计的),这让它的语法看起来很简洁(前提是你不介意使用括号),并且在 Scheme 的基础上增加了一些有趣的功能,比如“承诺”(将懒惰求值和未来值结合在一起)。这个语言非常强大,文档也很完善,自 Java 早期以来一直在积极维护和不断发展。
Java Advent Calendar 用一些有趣的例子和链接总结了 Kawa 的优点。
Scala的表现非常不错。
我正在用Scala编写我的Android应用项目(这是一个有中文截图的网站,源代码在GitHub上),而且环境设置起来很简单(不需要IDE,使用SBT作为构建工具)。
它可以访问Android SDK中的所有API,所以在Java中能做的事情,在Scala中也都能做到。
你可以查看这篇博客文章,了解如何用Scala和SBT构建Android应用。
在最开始的时候,
Java
是唯一被官方支持的编程语言,用来开发可以分发的第三方安卓软件。安卓原生开发工具包(Android NDK)允许开发者使用
C
和C++
来构建安卓软件组件。除了支持原生代码,谷歌还在扩展安卓,以支持流行的动态脚本语言。本月初,谷歌推出了安卓脚本环境(ASE),这让第三方开发者可以用
perl
、JRuby
、Python
、LUA
和BeanShell
来构建简单的安卓应用。如果想了解 ASE 的用法,可以参考这个示例链接。我刚刚看了一篇文章,里面有一些有用的信息,比如:
- 编程语言是 Java,但也有其他语言的桥接,比如
(C# .net - Mono, 等)
。 - 可以运行像
LUA
、Perl
、Python
、BeanShell
这样的脚本语言。
- 编程语言是 Java,但也有其他语言的桥接,比如
我还读了第二篇文章,内容在谷歌发布的“简单”安卓编程语言中。想看这个的例子,可以参考这里。
刚刚(2010年8月2日)我读到一篇关于“Frink编程语言和安卓计算工具”的文章,可以参考这些链接链接-1和链接-2。
在2010年8月4日,我发现了关于
RenderScript
的内容。简单来说,它是一种类似于C的语言,用于高性能图形编程,可以帮助你轻松编写高效的视觉效果和动画在你的安卓应用中。不过它还没有发布,因为还没有完成。