65

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

  • 方面J
  • 冷融合
  • Clojure
  • 时髦的
  • JavaFX 脚本
  • JRuby
  • 杰通
  • 犀牛
  • 斯卡拉

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

4

8 回答 8

62
  • 在发布时,Java它是唯一官方支持的用于构建可分发的第三方 Android 软件的编程语言。

  • Android Native Development Kit (Android NDK) 将允许开发人员使用C和构建 Android 软件组件C++

  • 除了提供对本机代码的支持外,Google 还在扩展 Android 以支持流行的动态脚本语言。本月早些时候,Google 推出了 Android 脚本环境 (ASE),允许第三方开发人员使用perlJRubyPython和. 有关ASE的想法和用法,请参阅此示例链接LUABeanShell

  • 还支持Scala 。有关 Scala 的示例,请参阅这些示例 链接1示例链接 2示例链接 3

  • 刚才我在这里参考了一篇文章,其中我发现了一些有用的信息,如下所示:

    1. 编程语言是 Java,但存在与其他语言的桥梁(C# .net - Mono, etc)
    2. 可以运行脚本语言,如LUA, Perl, Python,BeanShell等。

  • 我已阅读Google Releases 'Simple' Android Programming Language 的第 2 篇文章。例如,参考this

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

  • 2010 年 8 月 4 日,我找到了关于RenderScript. 基本上,据说它是一种用于高性能图形编程的类 C 语言,它可以帮助您在 Android 应用程序中轻松编写高效的视觉效果和动画。它还没有发布,因为它还没有完成。

于 2010-07-24T04:37:22.820 回答
24

Scala 工作得很好。

我正在用 Scala 编写我的 Android 应用程序项目(网站用中文写,有一些截图源代码@GitHub),设置环境非常容易(没有 IDE,使用 SBT 作为构建工具)。

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

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

于 2010-01-03T12:57:48.123 回答
7

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

Kawa 还包含许多宏(包括一些特定于 Android API 的宏),它们提供了一个很好的简洁语法(假设一个不反对括号),并在 Scheme 之上添加了一些美味的东西,比如“promises”(惰性 eval 和 futures在一个)。该语言非常健壮且文档齐全,并且自 Java 早期以来一直在积极维护和发展。

Java Advent Calendar通过一些信息丰富的示例和链接总结了 Kawa 的优点。

于 2013-06-20T16:33:47.420 回答
3

我没有玩过它,但我知道 Scala 可以工作。

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

于 2010-01-03T11:40:53.030 回答
3

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

于 2015-06-09T14:28:18.237 回答
1

Mercury也可以在 Android 上运行,使用它的 Java 后端。我编写了一个简单的应用程序,应该可以帮助某人入门(还有一些其他示例),以及用于此目的的merge-android-helper(尽管在这个确切的时刻,它的提交时间很短。而且两者都没有使用 ProGuard然而,所以.apk大小令人震惊。)

尽管这里的其他帖子都对 Scala-on-Android 感到高兴,但 Scala 论坛上的发帖者更关心 Scala 能否突破 Dalvik 的一些限制,并且使用它的人说他们将其保留用于非生产代码。(这里有一些关于 Scala 问题的讨论。)

我还不能说 Mercury 是否对 Dalvik 有自己的问题,但我暂时从 Scala 切换到它。

于 2011-12-05T08:16:24.173 回答
0

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

于 2010-01-03T13:32:47.530 回答
0

1) 角度 + 原生脚本

2) 反应式

于 2019-06-24T08:58:25.990 回答