在 Android Studio 开发 JNI 的时候,总感觉被一些细枝末节所迷惑,比如 NDK,.so 文件,动态库,library ,javah 编译等等,感觉很困惑,所以这次打算撇开细枝末节,只关注最必要的东西。其实 JNI 开发和 Android 关系不大,即使在纯 Java 世界,JNI 也是一项成熟的技术,所以这次撇开 android,单纯从 Java 开发的角度,来走一遍 JNI 开发的流程。
编写 Java 代码,这里使用 IntelliJ IDEA,编写 C/C++ 代码,使用 IntelliJ Clion
第一步:首先在 IntelliJ IDEA 中创建一个 Java 项目,新建一个 JniExample.java 文件,内容如下:
其中 test 表示需要加载的由 C 文件生成的库名,window 平台下是 .dll,ubuntu 平台下是 .so 文件。下面这条语句:
public native String getStringFromC();
表示需要由 C 语言实现,由 Java 调用的方法,和普通Java 方法的区别是在 public 后面多了一个 native 关键字。
写好之后,运行 Build -> Build Project