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

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

通过上图我们可以知道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的原因。

编译运行后的效果:

更多相关文章

  1. Android获取SD卡路径/内存的几种方法
  2. android app 缓存 ---- android 文件缓存使用流程解析
  3. 如何在Android上显示wmf的文件
  4. 阿里Android开发规范:资源文件命名与使用规范
  5. 使用android上传文件
  6. Android:Resources资源文件
  7. Android应用程序的数据存放目录 路径
  8. Android Studio 之 AndroidManifest.xml文件中的android:label属

随机推荐

  1. Android(安卓)RxJava操作符详解 系列:组合
  2. android监听器(Listener)的使用
  3. android手机电池管理
  4. android模拟器分辨率设置以及获得模拟器
  5. Android(安卓)- 滚动ListView的适配器
  6. ServiceManager Java 代理对象的获取
  7. zxin android客户端二维码框问题
  8. Android(安卓)Barrier
  9. Android之定义各种样式的标题栏
  10. 带图片的按钮-Android源代码