主要使用了[rust-android-gradle]https://github.com/mozilla/rust-android-gradle来集成rust开发环境。
一、Android环境
不多说,开发Andorid的环境Android Studio
、NDK
环境准备。
二、Rust环境
- 安装本地Rust开发环境。
- 安装Android对应rust工具链
rustup target add armv7-linux-androideabi # for arm
rustup target add i686-linux-android # for x86
rustup target add aarch64-linux-android # for arm64
rustup target add x86_64-linux-android # for x86_64
rustup target add x86_64-unknown-linux-gnu # for linux-x86-64
rustup target add x86_64-apple-darwin # for darwin x86_64 (if you have an Intel MacOS)
rustup target add aarch64-apple-darwin # for darwin arm64 (if you have a M1 MacOS)
rustup target add x86_64-pc-windows-gnu # for win32-x86-64-gnu
rustup target add x86_64-pc-windows-msvc # for win32-x86-64-msvc
...
三、Gradle部分
根目录的build.gradle
|
或者
|
模块build.gradle
|
四、Cargo部分
在指定配置的module
目录下添加我们的项目cargo new --lib myrust
libname
要和Cargo.toml
里指定的包名一致。[package]
name = "myrust"
version = "0.1.0"
edition = "2021"
[dependencies]
jni = "0.5.2"
[lib]
name = "myrust"
crate_type = ["staticlib", "dylib"]
五、代码编译
需要在项目的根目录下运行命令./gradlew cargoBuild
或者在build.gradle
中添加下面代码:tasks.whenTaskAdded { task ->
if ((task.name == 'javaPreCompileDebug' || task.name == 'javaPreCompileRelease')) {
task.dependsOn 'cargoBuild'
}
}
通过上面的方式,可以在编译结束后看到在下面两个地方分别生成了功能的so包:
便完成了rust
编译成so
文件。
六、代码测试
Java
|
Rust
|