这几天刚刚接触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 Filea>

直接gradle.properties加一行就好了

android.useDeprecatedNdk=true

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

编译运行后的效果:

更多相关文章

  1. Android(安卓)NDK Hello + JNI 与 NDK区别
  2. 怎样用 C/C++ 开发一个原生程序运行在 Android(安卓)下而不用 AD
  3. 同一功能在Android不同版本进行兼容的方法
  4. 反编译并且修改Android(安卓)APK包
  5. android运行C程序以及C程序在android下的编译
  6. 使用jni接口完成android本地程序的运行--具体的操作
  7. 使用jni接口完成android本地程序的运行--具体的操作
  8. 立即停止Android(安卓)Studio 编译
  9. 为什么我的Android(安卓)Studio没有Android(安卓)SDK选项

随机推荐

  1. android > WebView > 获取表单数据
  2. 【Android-View】Android(安卓)View控相
  3. ADB(Adriod Debug bridge) 启动 和关闭
  4. android使用ant编译打包
  5. Android系统通用技巧合集
  6. Android历代版本的代号
  7. Android 代码设置Color的几种方式
  8. 开始学习、翻译android文档
  9. android studio在编辑时出现如Failed to
  10. Cocos2d-x12和NDK-r8编译android