java jni 调用c函数_简单JNI的使用--在Java中调用C库函数

在Android Framework中,需要提供一种媒介或桥梁,将Java层(上层)与C/C++(底层)有机地联系起来,使得它们相互协调,共同完成某些任务。在这两层之间充当连接桥梁这一角色的就是Java本地接口(JNI,Java Native Interface),它允许Java代码与基于C/C++编写的应用和库进行交互操作。

JNI提供了一系列接口,允许Java类与使用C/C++等其它编程语言(在JNI中,这些语言被称为本地语言)编写的应用程序、模块、库进行交互操作。比如,在Java类中使用C语言库中中的特定函数,或在C语言里面使用Java类库,都需要借助JNI来完成。

通常会在下列几种情况下使用JNI

注重处理速度:如果对某段程序的执行速度有较高的要求,建议使用C/C++编写代码,而后在Java层通过JNI调用基于C/C++编写的部分代码。

硬件控制:为了更好地控制硬件,硬件控制代码通常使用C语言编写,借助JNI将其与Java层连接起来,从而实现对硬件的控制。

已有C/C++代码的复用:在编写程序的过程中,常常会使用已经编写好的C/C++代码,既提高了编程效率,又确保了程序的安全性和健壮性。在复用这些C/C++代码时,就要通过JNI来实现。

在Java代码中通过JNI调用C函数的步骤如下:

第一步:编写Java代码

第二步:编译Java代码(javac Java文件)

第三步:生成C代码头文件(javah java类名,自动生成)

第四步:编写C代码(实现C代码头文件里面的函数)

第五步:生成C共享库(使用工具编译生成C共享库,win下面为dll文件,Linux下面为so文件)

第六步:运行Java程序(java 类名)

第一步:编写Java代码

首先编写调用C语言的Java源代码HelloJNI.java

public classHelloJNI {native void printHello(); 1

native voidprintString(String str);static{

System.loadLibrary("hellojni"); 2}public static voidmain(String[] args) {//TODO Auto-generated method

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值