Rust Libraries

rust_library를 사용하여 Android용 새 Rust 라이브러리를 만듭니다.

여기서 2개의 라이브러리 의존성을 설언합니다.

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, } 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_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!