4 个版本
0.2.0 | 2023 年 7 月 1 日 |
---|---|
0.1.2 | 2023 年 3 月 29 日 |
0.1.1 | 2022 年 11 月 15 日 |
0.1.0 | 2022 年 11 月 10 日 |
#9 in #loaded
363 每月下载量
12KB
270 代码行数(不包括注释)
irondash_jni_context
此crate可用于从Rust代码获取对JavaVM的访问权限。
它定义了一个由JVM在库加载时调用的 JNI_OnLoad
函数。它保存对JavaVM的指针,以后可以访问。
它还尝试存储加载Flutter应用的类加载器。
这仅在从Java使用 System.loadLibrary
加载使用此crate的dylib时才有效。如果从其他代码(例如通过 dlopen
)加载dylib,则不会生效。
此crate还假设从主线程调用 System.loadLibrary
。它将记住主线程的looper,并提供将回调调度到主线程的功能。
示例用法
let context = JniContext::get().unwrap();
let java_vm = context.java_vm();
let mut env = java_vm.attach_to_current_thread();
// ...
context.schedule_on_main_thread(|| {
// This will be run on main thread
println!("Hello from main thread!");
});
依赖项
~0–11MB
~64K SLoC