JNI初探记录

一直听说JNI开发,但是没有实践过,初次试验,记录一下。

jni的实现简而言之就是:

java有一个native接口,c/c++语言实现接口,生成库,java再调用。

废话不多,直接步骤:

1:下载android-ndk,安装,生成文件


2:Eclipse设置ndk,在window-perference下:设置后最好重启一下吧


3:创建或者选中项目,右键,选择:Android Tools ---add Native support

点击后,在弹出界面输入名称,完成,会生成jni文件夹,里面会有Android.mk文件和cpp文件,以前没接触过c++,后来才明白所谓cpp:c plus plus.就是c++


这个jni目录是最终的目录,初始生成只有Android.mk和cpp文件


注意Android.mk中的LOCAL_SRC_FILES的值,是将要实现接口的c或者cpp文件。

4:生成.h文件

进入工程目录,比如你的工程是xxx.那么进入workspace/xxx目录

javah -classpath src/classes -d jni  包名.类名

src/classes 是class文件所在目录

-d xxx 是生成.h文件在xxx文件中

这个类名是写了native的java类,最好没有继承android的包


最后刷新一下jni文件夹

5:将.h中的内容复制到cpp或者c文件中,实现接口。

怎么实现,懂c++和c的会很明白,我还不是很明白,只会依样画葫芦:

cpp中:


c中:发现只有上面红框部分


6,适配CPU:

为了适配不同的cpu类型,需要在jni文件中添加你所看到的Application,mk文件,里面只有一句代码:


7,编译cpp或者c文件,会生成不同平台的.so文件在obj目录下 

8,运行

这只是在输出了一句话,复杂的还是不会,但是一切都是从hello world开始的。

学习的时候参考了:http://cherishlc.iteye.com/blog/1756762

http://cherishlc.iteye.com/blog/1756762

http://cherishlc.iteye.com/blog/1756762

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值