Rust 库

您可以使用 rust_library 为 Android 创建一个新的 Rust 库。

在这里,我们声明了对两个库的依赖:

  • libgreeting, 我们在下面进行了定义,
  • libtextwrap, 一个已经在 external/rust/crates/ 中提供的 crate。

hello_rust/Android.bp:

rust_binary { name: "hello_rust_with_dep", crate_name: "hello_rust_with_dep", srcs: ["src/main.rs"], rustlibs: [ "libgreetings", "libtextwrap", ], prefer_rlib: true, // Need this to avoid dynamic link error. } rust_library { name: "libgreetings", crate_name: "greetings", srcs: ["src/lib.rs"], }

hello_rust/src/main.rs:

//! Rust demo. use greetings::greeting; use textwrap::fill; /// Prints a greeting to standard output. fn main() { println!("{}", fill(&greeting("Bob"), 24)); }

hello_rust/src/lib.rs:

//! Greeting library. /// Greet `name`. pub fn greeting(name: &str) -> String { format!("Hello {name}, it is very nice to meet you!") }

您可以像之前一样构建、推送和运行二进制文件:

m hello_rust_with_dep adb push "$ANDROID_PRODUCT_OUT/system/bin/hello_rust_with_dep" /data/local/tmp adb shell /data/local/tmp/hello_rust_with_dep
Hello Bob, it is very nice to meet you!