我能用任何JVM语言编写Android应用程序吗?

26

除了Java(如jruby、jython、clojure)之外,我能否使用其他JVM语言编写Android程序,还是仅限于Java?

一年多以前也有类似的问题,但我不确定最近是否有任何变化。


3
一个月前有人询问 https://dev59.com/x3E85IYBdhLWcg3wVR2g ,其中有一些有趣的答案。 - Michał Marczyk
4个回答

16

请查看以下链接:

然而,我不知道是否有使用这些语言编写的重要应用程序。 我看到的例子更多地属于“概念验证”类别。虽然酷炫因素很高,但我仍然认为这些语言不是严肃的Android开发人员的可行工具。但我很想看到有人证明我是错误的!

目前似乎Scala最接近实现。


除Scala链接外,这里的所有其他链接都已失效。 - Samer Murad

8

我不确定其他JVM语言的表现如何,但我真的认为Scala是可以用于严肃的Android项目的语言。

当然它也有一些问题(例如Google Maps Android API在没有一些解决方法的情况下无法使用),但它与默认的Android SDK非常兼容。

我个人使用Scala开发我的Android应用程序(Maidroid Reminder),根据Android Market的统计数据,它已经被下载了约5000次。

它当然不是一个“知名”的应用程序,但它使用了许多Android SDK的功能,如ContentProvider/Broadcast Receiver/MediaPlayer等等,并且它的工作效果非常好,我感到比用Java编码更加有趣。

使用Scala开发Android应用程序的最好之处在于用户不需要安装任何运行时环境,就像Android Scripting Environment需要的那样!

只需发布您的APK文件,用户就可以使用Android Market或ADB安装您的应用程序。

如果有人对使用Scala编写的Android应用程序感兴趣,可以在GitHub上浏览源代码。


我相信使用Scala比Java更有趣(我喜欢Scala),但是我很好奇你是否觉得自己更加高效? - dbyrne
5
我认为是的。模式匹配、隐式转换和类型推断节省了我很多打字的时间,而高阶函数、闭包和特质让我能够编写代码而不用考虑应该怎么做,它只告诉我我想要什么,然后就可以工作了(例如过滤掉某些内容或进行一些转换)!;) - Brian Hsu

2

通过一些搜索,看起来已经存在一个适用于Android平台的JRuby脚本环境。


0

目前,大多数动态语言在Android Dalvic JVM上的性能表现不佳。它们可以运行,但可能会使用更多的CPU和内存,这可能不是您想要的。我听说他们正在努力改进这一点。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接