我的环境: Ubuntu14.04 64bit、Android Studio1.5

Android NDK安装

  下载地址:http://developer.android.com/ndk/downloads/index.html#download

  选择对应的操作系统,然后下载对应文件
  Windows上直接拷到目的目录,双击exe文件即可解压
  Ubuntu上
    ndk$ chmod a+x android-ndk-r10c-darwin-x86_64.bin
    ndk$ ./android-ndk-r10c-darwin-x86_64.bin

  配置环境变量
    Windows
      将ndk根目录加入到Path中,我的ndk根目录 :D:\android-ndk-r10e
    Ubuntu
      在~/.bashrc文件中添加(记得换成自己的ndk根目录):
        NDK_HOME=~/Android/Ndk/android-ndk-r10e
        export PATH=$NDK_HOME:$PATH
    验证(Windows和Ubuntu方法相同)
     在命令行输入ndk-build配置成功显示下图信息:
     

在Android Studio中的使用

  a)创建工程,并简单编写代码和UI
    创建NativeUtil.java,输入如下内容:
    
    MainActivity页面如图,点击Click会计算传入字符串的字节数
    

  b)使用javah命令,进入工程的main目录,使用:javah -d jni -classpath <SDK_android.jar>;<APP_classes> <完整包名>,会在main/jni目录下生成对应.h文件;例如:
    javah -d jni -classpath D:\JAVA_HOME\android-sdk\platforms\android-17\android.jar;../../build/intermediates/classes/debug com.demo.kore.myndk.NativeUtil
      说明:javah最后一个参数的包名对应的是NativeUtil.class文件,不是java文件;其位置如下:
        
    javah生成的文件:com_demo_kore_myndk_NativeUtil.h 如下图:
    

  c)在jni目录下创建一个main.c文件,并引用上面生成的.h文件,并实现其中的方法。
    
  d)app目录结构如下图:
    
  e)在app目录下的build.gradle文件中的defautlConfig{}标签内添加:
    
  f)在工程目录下的gradle.properties文件中添加下图内容:
    android.useDeprecatedNdk=true
  g)在工程目录下的local.properties文件中添加ndk本地目录,比如我的本地目录,记得换成自己的ndk目录
    sdk.dir=D:\\JAVA_HOME\\android-sdk
  h)MainActivity中onClick方法,如图,然后点击运行即可
    
  i)运行结果:
    

      说明:编译生成so库文件时,需要Android.mk文件,该文件由AS自动生成,其位置如下:
        

NDK中日志打印 - Log

  a)需要在main.c文件头部中增加部分信息
    
  b)在app目录下的build.gradle文件中的ndk标签添加如下内容
    
  c)在main.c文件的方法中调用方法,然后运行即可
    

遇见错误

  错误一:错误如下,解决方法:在gradle.properties中添:android.useDeprecatedNdk=true

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.

  错误二:错误如下,解决方法:在local.properties中添加本地ndk路径,例如:sdk.dir=D:\\JAVA_HOME\\android-sdk

    

参考链接:

  ndk入门教程:http://jingyan.baidu.com/article/37bce2be191ed51003f3a278.html
  ndk工程配置:http://blog.csdn.net/sodino/article/details/41946607
  Android中NDK开发:http://blog.chinaunix.net/uid-12845622-id-5037887.html
  Oracle官方jni文档:http://docs.oracle.com/javase/6/docs/technotes/guides/jni/spec/intro.html
  测试插件网址:http://tools.android.com/tech-docs/new-build-system/gradle-experimental

更多相关文章

  1. Android(安卓)使用Okhttp进行文件下载
  2. android webview 使用以及一些异常处理及上传文件问题
  3. Android数据存储方式
  4. android 按钮点击效果 imageview button imagebutton均可
  5. android资源类型
  6. Android开发之动态库调用
  7. Android(安卓)如何自定义apk打包的包名
  8. Android(安卓)启动另外activity并返回结果
  9. NPM 和webpack 的基础使用

随机推荐

  1. SSH爆破:是什么?怎么查?怎么预防?
  2. vscode 常用插件
  3. 在Centos 7上配置阿里云Pouch 镜像方法
  4. 一个简易的课程表和注册表单
  5. 阿里云CentOS 镜像配置方法
  6. 阿里云Centos镜像虚拟机安装方法
  7. 意派Epub360丨年终总结H5,这么做才精彩!
  8. 元素样式来源和选择器
  9. 【阿里云镜像】下载并安装Go环境
  10. 初识css:层叠样式表