c++怎么调用java_Java 和 C++之间互相调用

如何在Java和C++之间进行互相调用呢?

应用场景没有什么好说到了,Java调用底层SDK,SDK代码基本都是C或者C++编写,以及后期的物联网技术,很多都是和底层硬件相关系的,底层硬件相关系的编程,自然要用到C或者C++,上层的androidp平台都是用Java编写的,这个之间如何进行互动,就非常重要了。

这里提供两个思路,jni和jna,据说jna这个框架,实在底层的jni技术之上进行的一个封装,所以还是对jni技术有一个比较好的理解,才是至关重要的!!!

直接上demo吧!

package jni;

public class RecorderHandler {

static {

try{

System.out.println("load jni library start... ");

//装载对应的类库,因为我的是mac系统所以生成的是.dylib文件,如果是linux/unix生成的是.so文件

System.load("/Users/xxx/Documents/rt/libRecorderHandler.dylib");

// System.load("/root/ww/libRecorderHandler.so");

System.out.println("load jni library completed");

}catch(Exception e){

System.out.println("load jni lib occur error: " + e.getMessage());

}

}

/**

* 传入录制命令

* @param type ref enum type

* @param conf_id id

* @param conf_alias 别名

* @param force_jvb jvb

* @return

*/

public native int doRecorder(int type,String conf_id,String conf_alias,String force_jvb);

/**

* C++回调上传java

*/

public native void callback();

}

如上定义了两个native方法,第一个native方法是直接调用C++代码&#

你可能感兴趣的:(c++怎么调用java)