一直想用 Rust 开发 Android 程序,不过现阶段开发工具还是不太成熟。 目前的比较成熟的模式是使用 Rust 作为库,供 Java 和 Kotlin 或者 Flutter 调用。

几个参考项目:

我个人还是更倾向也更希望使用单独的 Rust 来写项目。这样就几乎没有什么选择了。
目前 https://github.com/tauri-apps/tauri 不支持,https://github.com/bevyengine/bevy 支持有问题。

最后选择使用 Bevy 来实现,Bevy 有了几个 PR 解决相关的问题。 比如:https://github.com/bevyengine/bevy/pull/4139
如果有需要,目前也可以直接使用我 fork 的版本 https://github.com/light4/bevy/tree/fix_android

最终的项目 https://github.com/light4/yars2048,除了下载 Android SDK 和 NDK, 只用考虑使用 Rust 开发就好了。

项目除了 Android 依赖,还依赖于 Bevycargo-apk 最后只用 cargo apk (build|run) 就可编译打包或者运行了。

目前的几个问题:

  1. 编译后的 Android 包无法在模拟器上运行,需要继续修改 Bevy
  2. 编译还不支持多个平台,(Linux/Android/Windows/MacOS),已支持 Linux,其他平台应该也类似