仅用 Rust 开发 Android 版 2048
一直想用 Rust 开发 Android 程序,不过现阶段开发工具还是不太成熟。 目前的比较成熟的模式是使用 Rust 作为库,供 Java 和 Kotlin 或者 Flutter 调用。
几个参考项目:
- https://github.com/mozilla/rust-android-gradle
- https://github.com/BrainiumLLC/cargo-mobile
- https://github.com/fzyzcjy/flutter_rust_bridge
我个人还是更倾向也更希望使用单独的 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 依赖,还依赖于 Bevy 和 cargo-apk
最后只用 cargo apk (build|run)
就可编译打包或者运行了。
目前的几个问题:
- 编译后的 Android 包无法在模拟器上运行,需要继续修改 Bevy
编译还不支持多个平台,(Linux/Android/Windows/MacOS),已支持 Linux,其他平台应该也类似