【Android笔记】JNI 和 NDK开发

JNI是什么

定义:Java Native Interface,即Java本地接口

作用:使得Java与本地其他语言(如CC++)进行交互,可以让Java代码和CC++代码进行互相调用。

JNIJava语言的一种特性,属于Java,与Android没有关系。


* NDK是什么

定义:Native Development Kit,是本地开发的工具包
作用:Android本地开发工具集合,快速开发CC++的动态库,可以自动将so库和应用一起打包成APK

NDK是专门为Android开发的一个本地开发工具,是Android实现JNI的一种手段。

实例开发


NDK在Android Studio中的配置

1、AS中添加NDK开发包SDK

在这里插入图片描述


在这里插入图片描述

2、 local.properties中添加配置

配置ndk的路径

ndk.dir=D\:\\Android\\Android_SDK_windows\\platforms\\ndk-bundle

在这里插入图片描述

3、gradle.properties中配置

对过期NDK做支持,这里是有个时间限制

android.deprecatedNdkCompileLease=1550631386689

在这里插入图片描述

4、build.gradle里配置生成so库的名字

 ndk {
    //生成的so库名字
     moduleName "helloJni"
  }

在这里插入图片描述


Android声明Native方法

1、新建Java测试类,声明Native方法
2、静态代码块中 加载so

在这里插入图片描述

在这里插入图片描述
3、进入JniTest.class同级文件夹下,打开命令行工具,通过命令生成.h的文件

javah -classpath . -jni com.ho.testjni.JniTest

在这里插入图片描述

4、java同级目录下新建jni目录,在文件目录下新建 C文件,并且把 .h文件移入到jni目录下。

在这里插入图片描述

在这里插入图片描述

5、点击 Build - Make Project生成不同平台下的so库,生成的名字是gradle里面配置

在这里插入图片描述

5、MainActivity 调用CNative方法

在这里插入图片描述

在这里插入图片描述

总结

本章介绍了AndroidNDK的使用过程,通过Java语言调用C语言实现了Java中的JNI。后续文章将介绍 C端调用Java代码的相关内容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值