Rust Libraries
You use rust_library to create a new Rust library for Android.
Here we declare a dependency on two libraries:
libgreeting, which we define below,libtextwrap, which is a crate already vendored in external/rust/crates/.
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!")}
You build, push, and run the binary like before:
m hello_rust_with_depadb push "$ANDROID_PRODUCT_OUT/system/bin/hello_rust_with_dep" /data/local/tmpadb shell /data/local/tmp/hello_rust_with_dep
Hello Bob, it is verynice to meet you!