返回
JNI 入门与高级技巧,手把手助你轻松跨越 JNI 雷区
Android
2023-11-07 20:52:06
搭建 JNI 工程
首先,你需要在 Android Studio 中创建一个新的 JNI 工程。
- 打开 Android Studio,点击 "New Project"。
- 选择 "Empty Activity" 模板,输入项目名称和包名。
- 在 "Add an Activity" 对话框中,选择 "Java with C++ Support"。
- 点击 "Finish" 完成工程创建。
加载 so 文件
接下来,你需要将你的 so 文件加载到 Java 代码中。
- 将你的 so 文件复制到项目的 jniLibs 目录中。
- 在 Java 代码中使用 System.loadLibrary() 方法加载 so 文件。
System.loadLibrary("my_so");
调用本地方法
现在,你可以使用 Java 代码调用本地方法了。
- 在 Java 代码中创建一个类,该类将包含本地方法。
- 使用 native 声明本地方法。
- 在本地方法中,编写 C/C++ 代码来实现该方法。
public class MyJNI {
static {
System.loadLibrary("my_so");
}
public native String sayHello();
}
#include <jni.h>
JNIEXPORT jstring JNICALL Java_MyJNI_sayHello(JNIEnv *env, jobject obj) {
return (*env)->NewStringUTF(env, "Hello from JNI!");
}
使用 Camke
如果你想在 JNI 中使用 C++ 11 或更高版本的特性,你可以使用 Camke 来编译你的 C/C++ 代码。
- 在你的项目的根目录下创建一个 CMakeLists.txt 文件。
- 在 CMakeLists.txt 文件中添加以下内容:
cmake_minimum_required(VERSION 3.4.1)
add_library(my_so SHARED
src/main/cpp/my_so.cpp)
target_link_libraries(my_so
log)
install(TARGETS my_so DESTINATION lib)
- 在命令行中运行以下命令来生成 so 文件:
cmake .
make
结语
JNI 是一个强大的工具,它允许 Java 代码与 C/C++ 代码进行交互。通过学习 JNI,你可以将 C/C++ 代码的强大功能引入到你的 Java 项目中,从而实现更复杂的功能。我希望这篇文章能够帮助你入门 JNI 开发,并为你提供一些有用的技巧。如果你有任何问题,欢迎随时提出。