NDK开发(1)——JAVA通过JNI调用C代码详细步骤

NDK中JAVA通过JNI调用C的实现步骤


1、创建android工程test

 

2、在已创建的android工程中创建一个XXX类,并在本类中声明一个native方法,加载本地C库文件的静态块

 

3、编译刚刚创建的XXX类,得到XXX.class文件

 

4、使用javah工具产生C语言的.h头文件

A、在test工程的根目录下创建一个jni文件夹

B、打开命令窗口,切换到test工程下的jni文件路径,执行

 

javah -classpath ../bin/classes com.jmc.ndk.XXX(包名+类名)


,执行完该语句后,jni文件夹下面会自动生成一个XXX.h文件


 PS:此步骤可能的问题:

无法访问android.app.Activity,找不到android.app.Activity的类文件

解决方法:

         javah  -classpath bin/classes;D:\sdk\adt-bundle-windows-x86-20140321\sdk\platforms\android-22\android.jar  -d  jni  com.XXX.MainActivity

 说明:-classpath是用来装入类的路径的,-d用来指定输出路径


5、把之前创建的test工程整个复制到NDK的samples目录下,接着在jni文件夹目录下编写C程序,实现之前声明的native方法

 

6、从samples目录下其他文件夹中复制一个mk文件,修改其中的MODULE和SRC_FILES内容

 

7、编译并链接C 程序

A、启动Cygwin

B、切换到NDK/samples/test目录

C、执行  ../../ndk-build ==》生成so文件

 

8、使用java调用生成的so文件

A、复制生成的so文件到test工程的根目录下

B、修改XXActivity,调用XXX中的native函数

C、运行该工程即可

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值