我从未尝试过在Clojure中开发Android,但从我所知,最可能的方法是使用React Native和ClojureScript。这里有一个有用的资源:https://cljsrn.org/
据了解,GraalVM目前不支持从Android或iOS编译。它可以编译到ARM64 Linux,但尚未支持Android或iOS。您可能仍需要一个用户界面层,因此您可能需要实现它并将其调用到由Graal编译的库。因此,这并不是一个完整的解决方案。
理论上使用Clojure也应生效。但Java不完全支持Java 8字节码,而Clojure 1.9+编译成Java 8字节码。因此,使用Clojure 1.9+时可能会出现无法正常工作的情况。尽管如此,Android一直在尝试添加更多对Java 8特性的支持,现在可能已经足够好了。不过,Android上针对Clojure的工具不会很多。预期可能需要您自己进行配置。您很可能会需要使用AOT编译,并将生成的.class文件集成到Android工具链中,以便进行字节码的转换和编译成dex字节码。
需要注意的是,Clojure在导入命名空间、初始化变量等操作上相对较慢,所以它可能不是Android上最佳的响应式语言选择。
有一个潜在的可能性但具体可行性未知,那就是使用Clojure进行移动应用开发:[Gluon](https://gluonhq.com/products/mobile/)
综上所述,鉴于在Android工具链中对Clojure的支持有限,以及存在工具不足的问题,还有Gluon和Graal当前不支持Android ARM作为目标平台,并且它本身也不构成完整的解决方案,我认为,在撰写本文档时,使用React Native结合ClojureScript是最佳方案。