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++代码&#

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值