前言:java
NDK:即Native Development Kit,用它开发c/c++是很方便的。android
这里是基于r13b的开发的,但r13b中没有samples这个文件,因此须要下载之前的版本中的samples,samples中包含的是官方的例子。c++
准备工具:eclipse
既然开发NDK,那eclipse和AndroidSDK那确定是必须的。工具
下载NDK包,android Studio中可直接下载,eclipse应该也能够,没尝试,如今是直接下载NDK包,解压的合适的位置,和SDK同样,路径不能出现中文。ui
配置环境变量,主要是两处,二是NDK_ROOT(须要本身建立),变量值是NDK的路径,一是Path,将刚建立的NDK_ROOT追加到Path后。spa
打开cmd命令行,输入ndk-build出现以下字符便可命令行
到此NDK的环境变量配置成功。3d
打开eclipseblog
Window—>Prefernces—>Android—>NDK选择你NDK Location的存放路径(我这有2个Android选项,我怕出问题,因此2个都选了)。
将samples复制android-ndk-r13b中(NDK根目录)
官方给的只有c文件,没有.so,须要本身生成,好像在6版本之前的装cygwin,如今不须要了,直接com窗口,cd到samples的hello-jni中(hello-jni就是官方给出的例子)
再输入命令行:NDK路径(NDK环境变量的变量值)/ndk-build
此时会对hello-jni工程进行编译生成一个libs文件夹,里面存放在生成libhello-jni文件,也就是咱们所须要的.os文件。
将hello-jni导入工程,会发现它比之前的工程多了几个文件夹,分别是jni,libs和obj,其中jni是自带的,剩下的2个是刚才com是建立编译的。
进入jni下的hello—jni.c
开头的Java_com_example_hellojni_HelloJni_stringFromJNI很重要,java表示java要用到,黄色的部分是你的包名,红色的是你的类名,蓝色的是方法名。
看HelloJni.java文件
此时运行程序就能看到 “这是个人JNI” 这句话,此上是运行官方的例子。
需注意,如想改变“这是个人JNI”,需将.c的文件改变,并从新com窗口编译出新的.so文件才能够。
官方例子就此跑通,但咱们若是想在NDK中跑本身的C程序,还须要一些另外的步骤。
若是你要是须要引用别人的.so文件,须要知道对方的包名,类名和方法名(很重要这点)。
至于本身的C程序编译成.so,得等我熟悉C语言后才能更新