Android JNI写出Hello World

有的时候我们需要调用Android系统底层的命令,这就要求我们在Android平台运行c++代码,也就是本地(native)开发。那么作为小白,怎么才能使用NDK写出第一个Hello Word呢?

1.下载NDK

到了2017年,希望你用的是AS。好的,使用AS直接下载:File->Project Structure,选择左侧SDK Location,依次是SDK,JDK,NDK的Location,至于下载按钮,我就不用说了吧。然后如果下载失败的话,建议翻墙到官网下载,然后解压,同样也是在这个面板配置NDK的路径。

2.生成.h文件

.h文件也就是头文件,这就不用解释了吧,类似于java开发时的import,你懂得。新手很容易在这个环节出现各种问题,这里,我来教你.h头文件的正确打开方式。
首先,你要先创建一个本地方法,如果你聪明的话应该知道他的修饰词就是native,我们新建一个文件NdkUtils.java,在里面创建个本地方法,如:pulbic native String getJniStr();(这里解释一下,这个方法在我们配置好之后是可以像普通方法一样调用的,它被调用时会调用cpp文件里对应的用c++写的方法),然后rebuild,这样,我们可以在项目的这个位置:app\build\intermediates\classes\debug\com\xxx\xxx,找到编译好的类文件NdkUtils.class,然后,讲该class文件复制到debug文件下,打开as左下角的Terminal,然后,使用命令行指令进入到debug路径执行命令: javah -jni xxx.xxx.xxx.NdkUtils,这应该是最稳妥的方法了,有些人说要进入app\src\main\java路径才能执行javah命令,但是前提是当前这个路径存在对应的class文件(有时候也不管用)。

3.配置!#%¥……#……%*!%

有人会骂我,这什么意思,我会说需要配置的东西我也记不住,但是,文章标题是,使用JNI写出Hello World,当然,我有简单的做法,就是使用CMake,不清楚AS从哪个版本开始支持CMake,我是在使用上述方法,出现错误的时候,AS提示建议使用CMake,那么我们有什么理由不去用呢?很简单,其实细心的Android开发者应该能够发现,在我们使用AS创建项目的时候会有如下的勾选框,
然后,next next finish就OK了。直接在真机跑起来就可以了。当然显示内容并不是Hello ,而是 Hello from C++我们可以这么改这里写图片描述
简单吧,试着去摸索吧。对了,你会问,那我们写本地方法的步骤去哪了?你可以试着在MainActivity里面写pubic native String getStrTest,然后Alt+Enter,这样,就可以在cpp文件里面生成对应的方法,是不是很方便?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值