Android Studio 创建JNI工程之最详细教程

1.概述

    在上一篇文章中 JNI技术-入门教程 中,我们只做了简单的用Java文件生成.h的头文件。

    在真正工作中,想要用自己公司的.so库,又恰巧底层使用C/C++写的,那恭喜你,你得学习JNI技术了。以前都是我直接拿同事生成的.so库来使用,jni流程看过,但是没想过自己写Jni工程,这次设计新的 SDK,层次划分到jni要自己去做的时候才知道,jni要写也是很麻烦的,当然这也是指在自己没做过的情况下,这次就自己动手从0到1实现一遍用Android studio编写的工程吧!

2.NDK下载及配置

    想要用工程编写jni首先一定要有NDK,那么NDK是什么呢? 下面先介绍下NDK是什么!

> 定义 :

     Native Development Kit,是 Android的一个工具开发包【NDK是属于 Android 的,与Java并无直接关系】

> 作用:

    快速开发C、 C++的动态库,并自动将so和应用一起打包成 APK

    即可通过 NDK在 Android中 使用 JNI与本地代码(如C、C++)交互,其实最大原因就是可以在工程中帮助你生成jni的.h头文件

>应用场景:

    在Android的场景下 使用JNI 【即 Android开发的功能需要本地代码(C/C++)实现】

 >NDK特点:

>NDK的两种下载方式:

这是Google官方下载: 点击打开下载NDK链接

通过Android studio 下载

在创建的工程 点击 File -> Settings ->

一定要点Apply

OK,NDK下载完成

然后 右键工程-> Open Module -> Android NDK Location -> OK -> 等待编译

查看一下,等待编译


发现根目录local.properties里面多了NDK路径如下图:


接着我们在根目录gradle.properties下面加上如下图:

android.useDeprecatedNdk=true

继续我们在module下面的build.gradle下面加上ndk节点如下图:

ndk {
        moduleName "JniTest"
       
    }

  

3.编写Jni接口


然后Build -> Make Project一下(记住一定不能拉下这一步,要不你编写的接口内容不会同步到class文件中),我们会发现在/JniTest/app/build/intermediates/下面多了一个classes文件夹.我们可以打开AS下面的Terminal进入到classes下面的release文件夹下。注意:创建工程默认为debug模式的,有的可能编译不过,建议更改为release模式

如下图:


正常来说执行到这里  我们只需要输入 javah com.butel.jni.ButelTestJni  就可以生成了,但是有时候会报下图这样的错误:


那到这里  我们还是按照上一篇文章所说的执行 javah -classpath . -jni com.butel.jni.ButelTestJni

好了 到这里  我们的.h文件就生成了!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值