7.1.5 从 C 调用 Rust

05-从 C 调用 Rust — Comprehensive Rust

译文 · 基于 Comprehensive Rust

原文链接: https://google.github.io/comprehensive-rust/android/interoperability/with-c/rust.html

7.1.5 从 C 调用 Rust

现在可以从 C 二进制调用它了:

interoperability/rust/libanalyze/analyze.h

1
2
3
4
5
6
#ifndef ANALYZE_H
#define ANALYZE_H

void analyze_numbers(int x, int y);

#endif

interoperability/rust/analyze/main.c

1
2
3
4
5
6
7
#include "analyze.h"

int main() {
  analyze_numbers(10, 20);
  analyze_numbers(123, 123);
  return 0;
}

interoperability/rust/analyze/Android.bp

1
2
3
4
5
cc_binary {
    name: "analyze_numbers",
    srcs: ["main.c"],
    static_libs: ["libanalyze_ffi"],
}

在设备上构建、推送并运行该二进制:

1
2
3
m analyze_numbers
adb push "$ANDROID_PRODUCT_OUT/system/bin/analyze_numbers" /data/local/tmp
adb shell /data/local/tmp/analyze_numbers
最后修改 August 11, 2026: 更新 (70a5af133)