android使用ndk开发,使用Android Studio进行NDK开发(示例代码)

Step1:创建native方法

很easy,仅仅须要给定义好的方法加上native关键词就可以

9c78f3631fe971ca227baae0c2ece3e2.png

注意:由于该方法的详细实现是在c++中详细实现的。所以相似于接口方法不须要加{}。

Step2:生成class文件(多数情况可忽略)

大多数情况下class文件是已经生成的。可是在刚进行改动或者代码中出现错误时,有可能会影响到class文件的生成,这时仅仅须要又一次生成一下就能够了。步骤为菜单条Build==>Make Project(若存在错误。修正后又一次尝试本操作就可以)

3a6b3def43c0d7e01d8cb9f013a2b011.png

Step3:生成.h文件

点击View->Tool Windows->Terminal,将命令行窗体打开,相当于windows下的cmd窗体。

96669fb5e990b365af9659034dd6115f.png

cd app/src/main/java

将路径切换到app/src/main/java

javah -d ../jni collector.com.indoorun.orientionsensorcollector.JNI

将包括native方法的类编译连接到.h文件

6186df82a28d2a5b801a44289dc808ca.png

此时项目中已经生成了jni目录和.h文件(其余文件是后来加入的。请先无视)

ef5aadf7a898372a0fa1f72dc8093299.png

Step4:实现c/c++文件

将上一步生成的.h文件复制一份,后缀名改成.cpp(个人喜欢c++,用c的话.c就可以),去除头尾和凝视部分。将方法详细实现,这一步骤须要一定的c/c++基础。

4b1c035d1db87c66a6e4c71b56cd143a.png

Step5:配置gradle文件

改动相应module的build.gradle文件(配置ndk)

ae83c75e263076dc44d91d0c575c97c6.png

改动local.properties文件(值得ndk路径,没有的话自己去下载个)

589a556d7d395239b3984e464d5231d4.png

改动gradle.properties文件(开启ndk编译权限)

0d5fa4d12f3ef7b17fac7273f820e3c5.png

Step6:生成.so文件

c7240d56d2c2038a5fb898b499fed6f0.png

执行完毕后的结果:

cc1cb80f85aa9bd0a8b1c68120f598d6.png

Step7:使用jni

在java代码中使用载入so库(建议写在Application中或者在jni类中用static代码块)

System.loadLibrary(“InertialJNI”);//你生成so文件时取的名字。

然后在你须要用到的地方当成一般java方法一样调用就可以了。

(确保使用前已经load)

以上~一切搞定~直接run就好了~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值