Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
android上java的替代方案_Java_Android_Scala_Clojure - Fatal编程技术网

android上java的替代方案

android上java的替代方案,java,android,scala,clojure,Java,Android,Scala,Clojure,我刚买了一部安卓手机,我非常想开始在上面编码! 但是我不是一个java迷,虽然我可以接受,但我想知道android虚拟机是否有合理的替代方案。 我用clojure做了一个中等规模的项目,但是从我读到的评论来看,在android上运行时速度非常慢。斯卡拉怎么样?我读到有人在安卓系统上做过实验,它“足够快”吗?学习曲线有多大 干杯, 泽玛利亚 有NDK,允许你在C或C++中编写程序的部分。 有一种ASE允许您用python或者其他语言编写脚本。没有python编译器,尽管您可能会听到其他情况 我读过

我刚买了一部安卓手机,我非常想开始在上面编码! 但是我不是一个java迷,虽然我可以接受,但我想知道android虚拟机是否有合理的替代方案。 我用clojure做了一个中等规模的项目,但是从我读到的评论来看,在android上运行时速度非常慢。斯卡拉怎么样?我读到有人在安卓系统上做过实验,它“足够快”吗?学习曲线有多大

干杯,
泽玛利亚

有NDK,允许你在C或C++中编写程序的部分。 有一种ASE允许您用python或者其他语言编写脚本。没有python编译器,尽管您可能会听到其他情况


我读过一些关于scala的文章,但因为我不是很感兴趣,所以我没有注意。

肯定有不少人在scala中进行Android开发。特别值得注意的是,甚至还有一个for,它是Scala项目的首选构建器,具有特定于Android的目标

至于学习曲线,我不能为Android开发本身说话,因为我还没有这样做。至于Scala,您可以非常快速地提高效率,但学习该语言的所有特殊性都需要时间。你不需要学习所有的特殊性——我见过一些人几乎没有任何经验编写非玩具程序——但是有些人不能忍受不了解他们正在使用的语言

另外,很多Scala代码都是非常声明性的。例如,如果查看SBT构建文件,它们大多是声明性的。出于某种原因,有些人对此感到非常不安

我猜我想说的是,这主要取决于你对Scala的了解程度


至于速度,Scala代码可以和Java代码一样快,尽管这可能需要避免更高级别的抽象,以换取更丑陋但快速的代码。不过,这在很大程度上取决于您正在进行的计算类型。

Android 2.2将jit添加到虚拟机中,这将使加载Clojure程序更加高效。Clojure生成了许多小类,当android程序启动时,这些类需要一段时间才能加载。这一点可以通过新安卓系统得到缓解,尽管它现在已经不是不可忍受的了

刚刚注意到在主干中可以找到一些Scala示例:

我自己也没有试过,但这很鼓舞人心。

“足够快”——你在手机上运行的应用程序,与你期望它做什么有关

java的性能也随着时间的推移而提高。但也可以说,您只是在用java编写代码。谷歌已经创建了一个工具,可以将java字节码转换为.dex(Dalvik可执行文件)。Dalvik java使用的VM实现针对该平台进行了优化。这意味着您可以使用像java这样的高级语言进行编程,java提供了许多帮助器类,这意味着您将更加高效

他们确实有一个NDK,但我相信您仍然需要一个java前端,并在必要时让java代码调用NDK代码。您几乎只想在真正需要优化时编写本机代码。许多java类,如JavaNIO和opengl类,只是直接使用硬件资源的低级调用的包装器


我可能对你的问题回答得有点过头了。

Android也有一个JRuby端口,我玩过这个端口,看起来很有趣

还有Lua,可以与Corona SDK一起使用。

NDK目前只为ARM生成代码。因此,带有其他CPU的设备被排除在外。就像WeTab.And Clojure代码依赖于良好的GC,dalvik无法提供。这:看起来很有趣。