我刚买了一个安卓手机,非常想开始在上面进行编码!但是我并不是很喜欢Java语言。虽然我可以用它,但我想知道是否有合理的替代安卓虚拟机的语言选择?
我曾使用Clojure完成过一个中等规模项目,但从我所读的评论来看,在安卓上运行时速度非常慢。那Scala怎么样?我读到有些人在安卓上进行了一些实验,它的速度足够快吗?学习曲线有多陡峭?
谢谢, Ze Maria
有NDK可以让你使用C或C++编写程序的部分。
还有ASE可以让你使用Python和其他语言编写脚本。虽然你可能听说过,但没有Python编译器。
我读过一些关于Scala的东西,但由于我并不是很感兴趣,所以没有注意。
有很多人在用Scala进行Android开发。特别值得注意的是,甚至有一个插件可以为Scala项目的首选构建工具SBT提供针对Android的目标。
至于学习曲线,我不能代表Android开发本身发表意见,因为我没有做过。至于Scala,你可以非常快速地提高生产力,但学习语言的所有细节需要时间。你不需要学习所有细节-我看到有些人几乎没有经验就写出了非玩具程序-但有些人无法忍受不知道他们正在使用的语言的某些内容。
此外,许多Scala代码都是非常声明性的。例如,如果您查看SBT构建文件,则大多数都是声明性的。出于某种原因,有些人对此感到非常沮丧。
我猜我想说的是,这主要取决于你如何适应Scala。
关于速度,Scala 代码可以像 Java 代码一样快,尽管这可能需要避免更高级别的抽象以换取更丑陋但更快的代码。这很大程度上取决于您正在进行什么类型的计算。Android 2.2在VM中增加了jit,这应该使加载Clojure程序更加高效。Clojure生成许多小类,在android程序启动时加载需要一段时间。虽然现在还不是无法忍受的,但这将在新版Android中得到缓解。
刚刚注意到在主干中可以找到一些Scala的例子:http://lampsvn.epfl.ch/trac/scala/browser/scala/trunk/docs/android-examples。
我还没有尝试过,但是这很令人鼓舞。
还有Lua,你可以在Corona SDK中使用它。