将/lib/arm/libpolarssl.so编译为一个可共享和链接的库文件,同时将其添加到app的build.gradle中。代码示例:
1.在本地创建一个Android.mk文件,将其添加到/lib/arm/目录下
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS) LOCAL_MODULE := polarssl LOCAL_SRC_FILES := polarssl.c include $(BUILD_SHARED_LIBRARY)
2.创建polarssl.c文件,并将其添加到同一目录中
#include
JNIEXPORT jstring JNICALL Java_com_example_testjni_MainActivity_getVersion(JNIEnv *env, jobject obj) { char version[20]; sprintf(version, "v%d.%d.%d", POLARSSL_VERSION_MAJOR, POLARSSL_VERSION_MINOR, POLARSSL_VERSION_PATCH); return (*env)->NewStringUTF(env, version); }
3.在app的build.gradle中添加以下内容
android { ...
defaultConfig {
...
ndk {
// 设置生成的库类型
moduleName "polarssl"
// 设置生成的so文件的所属CPU类型
abiFilters "armeabi-v7a", "x86"
}
}
...
sourceSets.main {
jni.srcDirs = ['src/main/lib']
jniLibs.srcDirs = ['src/main/lib']
}
}
4.在MainActivity中加载库文件并调用native函数
static { System.loadLibrary("polarssl"); }
public native String getVersion();
5.编译和运行程序。如果一切正常,应该能够成功加载/lib/arm/libpolarssl.so文件并调用其中的native函数。