android之NDK(jni)开发笔记1——运行第一个NDK程序

这几天刚刚接触NDK开发,我觉得这个也是我们android开发者必须掌握的,所以在这里mark下,我们比较熟悉的是android的SDK开发,一般的开发中我们很少去接触NDK,其实就是我们常说的jni。已经有SDK了,为什么android支持NDK呢,google就是为了让android支持直接去调用c/c++的一些东西,我们都知道c/c++是比java效率更高的,java是牺牲运行效率,提高编译效果,而c/c++则反之。那么SDK和NDK是什么关系呢,我直接在网上找了一张图来看下

这里写图片描述

通过上图我们可以知道NDK最终生成的是so文件,然后通过SDK去调用。下面我们就直接来写第一个NDK程序。写之前我们先来准备好环境。

1,下载ndk,我用的是最新的r10包。点击下载

2,下载好后,直接运行exe文件就可以直接解压了,解压后放在一个你喜欢的路径下,然后我们在AS直接配置路径就好了,ctr+alt+shift+s,如下图配置![这里写图片描述]

这里写图片描述

3,配置好之后,我们来到local.properties配置下,在最后一行添加
ndk.dir=E:\AS\NDK\android-ndk-r10d,这个路径要填你自己ndk的路径。
4,然后再src目录下的build.gradle的defaultConfig配置下

  defaultConfig {
        ....
        ndk{
            moduleName "YanboberJniLibName"         //生成的so名字
            abiFilters "armeabi", "armeabi-v7a", "x86"  //输出指定三种abi体系结构下的so库。目前可有可无。
        }
    }

配置好后我们就可以来coding了,demo直接参考博客

coding了一遍, 编译的时候报了一个错:

Error:(13, 0) Error: NDK integration is deprecated in the current plugin.  Consider trying the new experimental plugin.  For details, see http://tools.android.com/tech-docs/new-build-system/gradle-experimental.  Set "android.useDeprecatedNdk=true" in gradle.properties to continue using the current NDK integration.
<a href="openFile:E:\AS\workspace\NDKDemo\app\build.gradle">Open File</a>

直接gradle.properties加一行就好了

android.useDeprecatedNdk=true

还有一个就是在AS里面c文件会出现红色的报错的信息,这个是AS的原因。

编译运行后的效果:
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值