码迷,mamicode.com
首页 > 编程语言 > 详细

JNI之Java调用so文件

时间:2016-10-08 19:03:58      阅读:139      评论:0      收藏:0      [点我收藏+]

标签:

一、背景: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

  1. void *handle = dlopen("./libadd_c.so", RTLD_LAZY);  
  2.       
  3.     if(!handle)  
  4.     {  
  5.         return -1;  
  6.     }  
  7.       
  8.     typedef int (*add_t)(int a, int b);  
  9.     add_t add = (add_t) dlsym(handle, "add");  
  10.     if(!add)  
  11.     {  
  12.         dlclose(handle);  
  13.         return -1;  
  14.     }  
  15.     a = add(3, 4);  
  16.     dlclose(handle);  
  17.     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文件

标签:

原文地址:http://www.cnblogs.com/taob/p/5939476.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!