Android JNI入门编辑之Hello world

Android JNI入门编辑之Hello world

  1. 环境搭建 开发环境为Android studio1.5,window10操作系统,在开发中发现1.5版本在编译生成NDK的命令行与2.0以上版本有点区别,在下面会具体说明,至于具体原因,现在还不清楚(欢迎知道的朋友留言告诉),下面具体进行第一个android JNI调用C++代码的程序,我会以图片的形式具体来显示,方便不懂的朋友快速了解。

  2. 创建Android调用C++程序 首先用Android studio创建一个新的Android Demo,这里我新建一个名为AndroidJni的项目,如图所示: 这里写图片描述

  3. 创建一个Java类,名字为JniTest,在JniTest类中,声明会使用到的一些native接口方法,以及自定义so: 这里写图片描述

  4. JniTest中方法之所以显示错误,是还没有在JNI头文件中生成对应的函数,这里可以先不用管。 创建JNI文件,生成JNI层C/C++头文件 这里写图片描述

  5. 对于生成的com_tanggua_androidjni_JniTest.h,需要将其一定到JNI文件中,并且生成对应的C或者C++ 的.c或者.cpp文件,生成.h文件需要在Triminal中切换到Android项目的java目录下,并且使用javah生成.h文件。在具体实现中,我发现Android 1.5版本生成.h文件需要使用 javah -classspath . -jni 包名+类名的形式才可以,在Android studio2.0以上使用javah -d ../jni 包名+类名形式,而且这个命令在1.5中不能生成,具体原因还没有搞懂。好了现在生成了JNI层文件。完成之后需要在gradle.properties目录下加上 android.useDeprecatedNdk = true如下图这里写图片描述

  6. 然后在build.gradle中添加ndk所包含的库,名字必须与创建的一样,最后在Sync Now或者build一下项目,就会发现前面的错误完全消失,项目创建成功,如图: 这里写图片描述

  7. 下面我们可以具体在JNI层对native方法进行操作了: 这里写图片描述

  8. 然后返回Java层,在MainActivity中对native方法进行调用,并获取JNI层数据,在这个时候我们出现了一个错误,如图:这里写图片描述

  9. 根据所查到的资料显示这个错误是因为NDK的原因,需要在JNI中创建一个空的文件,在这里创建的是empty.c文件,然后编译,成功:这里写图片描述

  10. 好了,第一个Android Jni到此编译完成,后续我继续更新Android Jni使用,以及各种类型的转换,调用,Java与C/C++调用。 - - 代码下载地址:

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值