Android NDK 教程 - NDK环境配置和 Android Studio 中的入门使用

我的环境: 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

你可能感兴趣的:(android,log,NDK,Studio)