首页 > 代码库 > JNI之Java调用so文件
JNI之Java调用so文件
一、背景:web项目中需要调用第三的一个so库文件,只能略微学习下了,对android NDK开发方面应该也有所帮助,学习下
二、调用方式
第一种方式:Java直接调用so文件
第二种方式:Java通过自己的so文件,调用第三方的so文件
三、参考示例(就不拷贝来拷贝去了,直接贴上我参考的网址吧)
参考网址:
Java调用so,c编译成so http://blog.chinaunix.net/uid-20180960-id-1972669.html
Java文件 -> *.class -> *.h -> 编写*.c ->编译成.so ,执行
c++与c调用so文件 http://blog.csdn.net/yf210yf/article/details/11712999
- void *handle = dlopen("./libadd_c.so", RTLD_LAZY);
- if(!handle)
- {
- return -1;
- }
- typedef int (*add_t)(int a, int b);
- add_t add = (add_t) dlsym(handle, "add");
- if(!add)
- {
- dlclose(handle);
- return -1;
- }
- a = add(3, 4);
- dlclose(handle);
- return 0;
jni中参数的传递、转换 http://blog.csdn.net/liu_jun_y/article/details/9178501
jint Java_cn_hongdameng_aacencoder_AacEncoder_AacWrite(JNIEnv* env,jobject
this
,jbyteArray jBuffer, jint jBufferSize)
{
jbyte* bBuffer = (*env)->GetByteArrayElements(env,jBuffer,0);
unsigned
char
* buf=(unsigned
char
*)bBuffer;
...................
}
JNI之Java调用so文件
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。