理论上,Dalvik 可以执行任何虚拟机字节码,例如使用
- 方面J
- 冷融合
- Clojure
- 时髦的
- JavaFX 脚本
- JRuby
- 杰通
- 犀牛
- 斯卡拉
Dalvik 的字节码编译器是否已经有工作版本,可用于 Java 以外的其他语言?
在发布时,Java
它是唯一官方支持的用于构建可分发的第三方 Android 软件的编程语言。
Android Native Development Kit (Android NDK) 将允许开发人员使用C
和构建 Android 软件组件C++
。
除了提供对本机代码的支持外,Google 还在扩展 Android 以支持流行的动态脚本语言。本月早些时候,Google 推出了 Android 脚本环境 (ASE),允许第三方开发人员使用perl
、JRuby
、Python
和. 有关ASE的想法和用法,请参阅此示例链接。LUA
BeanShell
刚才我在这里参考了一篇文章,其中我发现了一些有用的信息,如下所示:
(C# .net - Mono, etc)
。LUA
, Perl
, Python
,BeanShell
等。
我已阅读Google Releases 'Simple' Android Programming Language 的第 2 篇文章。例如,参考this。
刚才(2010 年 8 月 2 日)我读过一篇文章,描述了“ Frink 编程语言和 Android 计算工具”,请参阅此链接Link-1、Link-2
2010 年 8 月 4 日,我找到了关于RenderScript
. 基本上,据说它是一种用于高性能图形编程的类 C 语言,它可以帮助您在 Android 应用程序中轻松编写高效的视觉效果和动画。它还没有发布,因为它还没有完成。
Scala 工作得很好。
我正在用 Scala 编写我的 Android 应用程序项目(网站用中文写,有一些截图,源代码@GitHub),设置环境非常容易(没有 IDE,使用 SBT 作为构建工具)。
它可以访问 Android SDK 中的每个 API,所以你可以用 Java 做的任何事情,你也可以用 Scala 做。
您可以查看此博客条目以了解如何使用 Scala 和 SBT 构建 Android 应用程序。
Kawa是一个可爱但鲜为人知的 Scheme 变体,它已经悄然存在多年,并且原生运行在 JVM 和 Dalvik上。因此,它的输出不包括额外的 VM,只包括显式导入的库。对于最终程序员来说,这意味着 Kawa 的性能和可执行文件大小几乎与标准 Java 相同(不需要 ProGuard)。
Kawa 还包含许多宏(包括一些特定于 Android API 的宏),它们提供了一个很好的简洁语法(假设一个不反对括号),并在 Scheme 之上添加了一些美味的东西,比如“promises”(惰性 eval 和 futures在一个)。该语言非常健壮且文档齐全,并且自 Java 早期以来一直在积极维护和发展。
Java Advent Calendar通过一些信息丰富的示例和链接总结了 Kawa 的优点。
我没有玩过它,但我知道 Scala 可以工作。
Mercury也可以在 Android 上运行,使用它的 Java 后端。我编写了一个简单的应用程序,应该可以帮助某人入门(还有一些其他示例),以及用于此目的的merge-android-helper(尽管在这个确切的时刻,它的提交时间很短。而且两者都没有使用 ProGuard然而,所以.apk
大小令人震惊。)
尽管这里的其他帖子都对 Scala-on-Android 感到高兴,但 Scala 论坛上的发帖者更关心 Scala 能否突破 Dalvik 的一些限制,并且使用它的人说他们将其保留用于非生产代码。(这里有一些关于 Scala 问题的讨论。)
我还不能说 Mercury 是否对 Dalvik 有自己的问题,但我暂时从 Scala 切换到它。
在 Dalvik 支持 JIT (Just In Time) 编译之前,动态类型语言是不可能的。我相信其中一个实验性的 Eclair 分支支持 JIT,但它尚未在 Android 中正式可用/支持。
1) 角度 + 原生脚本
2) 反应式