2024 Clojure状态调查!中分享您的想法。

欢迎!请参阅关于页面了解该网站的工作原理。

+10
其他
编辑于

开发Android的最佳方法是什么?

我知道ClojureScript/React Native是一种方法。我以为仅仅在Android上使用Clojure会导致启动速度非常慢,但我看到有人提到在使用Android时使用了GraalVM。还有其他方法吗?各种方法的权衡是什么?每条道路的状况如何?Android开发的可行性如何?

感谢

1 个答案

+4

我从未尝试过使用Clojure进行Android开发,但据我所知,最佳方法可能是使用React Native和ClojureScript。这是一个有用的资源:https://cljsrn.org/

据我所知,目前GraalVM不支持将代码编译成Android或iOS。它可以编译为ARM64 Linux,但还没有支持Android或iOS。您还需要在UX层,所以您可能需要实现一层,并且它将调用Graal编译的库。因此,这不会是一个完整成熟的解决方案。

理论上直接使用Clojure应该也能工作。但是Java不完全支持Java 8字节码,而Clojure 1.9+编译成的字节码是Java 8格式。因此,使用Clojure 1.9+可能会遇到一些不兼容的问题。尽管如此,Android一直在添加更多对Java 8特性的支持,所以现在可能已经足够好了。但是,对于Android系统中的Clojure来说,工具链并不会很丰富。你可能需要自己创建工具。你很可能会需要使用AOT编译,并将生成的.class文件插入到Android工具链中以便进行去糖和DEX字节码编译。

另外,Clojure在加载名称空间、初始化变量等方面运行较慢。因此,它可能不是Android开发中最响应的语言选择。

一个可能有潜力但我不确定其可行性的是Gluon https://gluonhq.com/products/mobile/

以上。考虑到Android工具链和Gluon对Clojure的局限性,以及Graal目前不支持Android ARM作为目标环境,并且它也不能作为完整的解决方案,我认为在此阶段,使用ClojureScript和React Native是最佳方案。

...