Android.mk里添加编译选项
LOCAL_LDLIBS := -L . -ldl
添加头文件:
#include <dlfcn.h>
代码调用:
JNIEXPORT jint JNICALL
Java_com_image_JNI_add( JNIEnv* env,
jobject obj,
jint a,
jbyte b)
{
void* filehandle = dlopen("/data/data/com.test/lib/libimage-jni.so", RTLD_LAZY ); // 打开原so文件
if(filehandle)
{
int (*oldmethod) (int,int);
oldmethod= (int(*)(int,int))dlsym(filehandle, "test"); //引入原so中的函数
if( oldmethod)
{
//调用该函数
ac = oldmethod(1,2);
}
}
return ac;
}
两个so 库都放在工程的libs/armeabi目录下。