android ndk 示例,Android Studio NDK 示例

本文是在mac环境,使用android studio完成ndk开发

ndk安装在这里略过

配置也比较简单

54f7444e1536

Paste_Image.png

具体步骤

1.新建一个方法,用native标识

public static native int getIntFromNative(int a, int b);

2.编译一遍项目,目的是为了获得native方法的类的class文件

54f7444e1536

Paste_Image.png

3.用javah命令生成头文件

这里用android自带的命令行工具即可,先进入class文件所在的目录,然后按执行下面的命令,javah -jni com.xxx.xxx.Xxx(后面是class文件)

54f7444e1536

Paste_Image.png

4.命令执行成功后,就会在当前目录下生成一个头文件了

54f7444e1536

Paste_Image.png

5.把这个头文件复制到jni目录下(项目路径/src/main/jni),然后就可以生成c文件了,c++不会,不过应该差不多

54f7444e1536

Paste_Image.png

6.实现native代码

头文件的内容如下

54f7444e1536

Paste_Image.png

c文件的具体实现如下

54f7444e1536

Paste_Image.png

事实上只需要手动添加inclue "com_xxx_xxx_xxx.h"即可,其余的函数实现可以从头文件那复制过来,加上变量名称和代码实现就完成了

7.项目的ndk配置

打开项目的gradle文件,在config下添加ndk配置

54f7444e1536

Paste_Image.png

这里的moduleName是自己指定的,而abiFilters是匹配不同设备环境的,一般就这三个

8.加载库文件

到这里就几本上结束了,在调用native方法之前,记得加载库文件(加载一次就够了,所以一般写在static块中),文件名称就是前面ndk配置中指定的moduleName了

System.loadLibrary("gradle中指定的moduleName");

最后就是直接调用看效果了

54f7444e1536

Paste_Image.png

54f7444e1536

Paste_Image.png

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值