JNI编程

概述:

JNI  java 通往 c/c++  世界的桥梁

NDK 开发文件的工具包,android studio 2.2 以上提供了更加便捷的开发方式。

 JNI 基础知识:

函数声明:

java层 要 声明native 方法 和库文件的引用

函数注册:

要注册 函数,也就是让底层知道上层调用的是哪个函数。
两种方式:
静态注测:也就是JNI编程规范的注册方式, 根据方法的名字寻找, 包名类名方法名。 
如果不用ndk 工具的话, 首先要生成 class文件, 然后利用javah 工具 生成一个.h 头文件。再利用 要编写的C文件 一起通过工具生成so文件。最后将so文件打成lib 也就是声明中要引用的库文件,就完成了函数的调用

如果使用ndk 工具的话,那么  在cpp 文件夹下 extern"C" 然后编写jni函数的c++文件 即可,最后会自动帮我们生成so文件。

动态注册:android 系统采用的注册方式 不用超长包名
步骤: 先 在cpp 文件下定义方法数组,然后通过JNI_Onload()方法进行注册

JNI函数含义:

http://blog.csdn.net/fu_zk/article/details/19031483




传送门:

AndroidStudio2.2 新 NDK开发工具使用:
http://www.jianshu.com/p/e03028f826d7

静态注册 不用NDK Demo:
https://github.com/cuizehui/HelloNDK/tree/master/app

NDK 下两种注册方式的Demo:


个人理解: jni编程就是通过 jni 层函数 将java 类对象方法成员 传递给cpp文件,同样C也可以调java方法。 然后用c语言写代码。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值