我从未尝试过使用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是最佳方案。