Bibliotecas de Rust

VocĂȘ usa rust_library para criar uma nova biblioteca Rust para Android.

Aqui declaramos uma dependĂȘncia em duas bibliotecas:

  • libgreeting, que definimos abaixo,
  • libtextwrap, que Ă© um crate jĂĄ oferecido em 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, // Precisamos disso para evitar erro de ligação dinùmica. } rust_library { name: "libgreetings", crate_name: "greetings", srcs: ["src/lib.rs"], }

hello_rust/src/main.rs:

//! Rust demo. use greetings::greeting; use textwrap::fill; /// Imprime uma saudação na saída padrão. fn main() { println!("{}", fill(&greeting("Bob"), 24)); }

hello_rust/src/lib.rs:

//! Greeting library. /// Saudação `nome`. pub fn greeting(name: &str) -> String { format!("OlĂĄ {nome}, prazer em conhecĂȘ-lo!") }

VocĂȘ constrĂłi, envia e executa o binĂĄrio como antes:

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!