【问题标题】:Which programming languages can I use on Android Dalvik?我可以在 Android Dalvik 上使用哪些编程语言?
【发布时间】:2010-12-31 23:16:33
【问题描述】:

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

的编译器创建的
  • 方面J
  • ColdFusion
  • Clojure
  • 时髦的
  • JavaFX 脚本
  • JRuby
  • Jython
  • 犀牛
  • 斯卡拉

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

【问题讨论】:

  • Dalvik 执行从 Java 源代码编译的字节码形式这一事实并不意味着它与 JVM 兼容,即使“理论上”也是如此。
  • 注意“Rhino”是“JavaScript”的实现,“Jython”是“Python”的实现。 Click here for a more complete list。此外,HTMLJavaScript 语言可以在 Android 上的 WebView 中使用,甚至还有 JavaScript 框架和 SDK。

标签: java python android scala dalvik


【解决方案1】:
  • 在发布时,Java 是唯一官方支持的用于构建可分发的第三方 Android 软件的编程语言。

  • Android 原生开发工具包 (Android NDK),允许开发人员使用 CC++ 构建 Android 软件组件。

  • 除了提供对本机代码的支持外,Google 还在扩展 Android 以支持流行的动态脚本语言。本月早些时候,谷歌推出了Android Scripting Environment (ASE) ,允许第三方开发者使用perlJRubyPythonLUABeanShell构建简单的Android应用程序。如需了解和使用 ASE,请参阅Example link

  • Scala 也受支持。有关 Scala 的示例,请参阅这些 Example link-1 Example link-2 Example link-3

  • 刚才我提到了一个 Article Here ,其中我发现了一些有用的信息如下:

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

  • 我在Google Releases 'Simple' Android Programming Language 阅读了第二篇文章。例如,refer this

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

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

【讨论】:

    【解决方案2】:

    Scala 运行良好。

    我正在使用 Scala(Website written in Chinese with some screenshotsource code @ GitHub)编写我的 Android 应用程序项目,并且设置环境非常容易(没有 IDE,使用 SBT 作为构建工具)。

    它可以访问 Android SDK 中的所有 API,因此您可以在 Java 中执行的任何操作,您也可以在 Scala 中执行。

    您可以查看blog entry,了解如何使用 Scala 和 SBT 构建 Android 应用程序。

    【讨论】:

      【解决方案3】:

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

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

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

      【讨论】:

        【解决方案4】:

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

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

        【讨论】:

          【解决方案5】:

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

          【讨论】:

            【解决方案6】:

            Mercury 也适用于 Android,使用其 Java 后端。我写了一个simple app 应该可以帮助某人入门(还有一些其他示例),mercury-android-helper 也是为了这个目的(尽管在这个确切的时刻,它的提交时间很短。而且两者都没有使用 ProGuard ,所以.apk 的大小令人震惊。)

            虽然这里的其他帖子对 Scala-on-Android 感到高兴,但 Scala 论坛中的海报更关心 Scala 能否突破 Dalvik 的一些限制,并且使用它的人说他们将其保留用于非生产代码. (一些关于Scala问题的讨论here。)

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

            【讨论】:

              【解决方案7】:

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

              【讨论】:

              【解决方案8】:

              1) Angular + nativeScript

              2) 反应式

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 2014-05-09
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多