使用Android Studio进行NDK开发

Step1:创建native方法

非常简单,只需要给定义好的方法加上native关键词即可
这里写图片描述
注意:因为该方法的具体实现是在c++中具体实现的,所以类似于接口方法不需要加{}。

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

大多数情况下class文件是已经生成的,但是在刚进行改动或者代码中出现错误时,有可能会影响到class文件的生成,这时只需要重新生成一下就可以了。步骤为菜单栏Build==>Make Project(若存在错误,修正后重新尝试本操作即可)
这里写图片描述

Step3:生成.h文件

点击View->Tool Windows->Terminal,将命令行窗口打开,相当于windows下的cmd窗口。
这里写图片描述
cd app/src/main/java
将路径切换到app/src/main/java
javah -d ../jni collector.com.indoorun.orientionsensorcollector.JNI
将包含native方法的类编译连接到.h文件
这里写图片描述
此时项目中已经生成了jni文件夹和.h文件(其余文件是后来添加的,请先无视)
这里写图片描述

Step4:实现c/c++文件

将上一步生成的.h文件复制一份,后缀名改成.cpp(个人喜欢c++,用c的话.c即可),去除头尾和注释部分,将方法具体实现,这一步骤需要一定的c/c++基础。
这里写图片描述

Step5:配置gradle文件

修改对应module的build.gradle文件(配置ndk)
这里写图片描述

修改local.properties文件(值得ndk路径,没有的话自己去下载个)
这里写图片描述

修改gradle.properties文件(开启ndk编译权限)
这里写图片描述

Step6:生成.so文件

这里写图片描述
运行完成后的结果:
这里写图片描述

Step7:使用jni

在java代码中使用加载so库(建议写在Application中或者在jni类中用static代码块)
System.loadLibrary(“InertialJNI”);//你生成so文件时取的名字。
然后在你需要用到的地方当成一般java方法一样调用就行了。(确保使用前已经load)
以上~一切搞定~直接run就好了~

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值