前言
我会在小专栏和简书一起分享。
约定写一篇如何生成多个so文件,要做ndk开发肯定会涉及到生成多个so文件,此次我会将cmake和ndk-build两种编译方式一起写,东西不多,一起学习吧。
正题
CMake编译
首先想之前一样新建一个空项目,记得勾选Include C++ support。这是一个最简单的CMake编译so的项目。接着新建一个PlusJni.java类,在cpp目录下新建一个C++文件,我命名为native-plus-lib.cpp。可以通过自动创建C++方法的方法。
public class PlusJni {
static {
System.loadLibrary("native-plus-lib");
}
public native int plusNumbers(int x,int y);
}
#include
extern "C"
JNIEXPORT jint JNICALL
Java_com_crayfish_cmakehello_PlusJni_plusNumbers(JNIEnv *env, jobject instance, jint x, jint y) {
return x+y;
}
这是一个简单的加法运算。然后我们在CMakeLists.txt文件中,补充以下代码
add_library(native-plus-lib SHARED
src/main/cpp/native-plus-lib.cpp)
最后点击build->Make