NDK开发

1.准备工作

  首先要确保eclipse的c++开发环境是否搭建好,之后下载ndk,并且把ndk环境搭建好,详情参见官网。

2.创建android工程

  新建一个android工程,之后右键工程选择Android-Tools->add Native Support.输入名称后会生成jni目录,里面生成cpp文件和mk文件.

 打开cpp文件,在include"jni.h"上会有错误提示,找不到该头文件.

 右键工程,点击properties 如图:

NDK开发_第1张图片

展开 C/C++ General 选择Paths and Symbols 在右侧窗口中点击add,在弹框中勾选add to all language 如图所示:

NDK开发_第2张图片

之后点击File System按钮.选择 ndk的目录->platforms->android-x(x是数字)->arch-arm->usr->include 之后点击Apply. 这个时候cpp文件中的错误便会消失. 

3.编写java本地接口

   NativeInterface.java 代码如下:

public class NativeInterface {

	public native int getCode();
	
	public native String getMessage();
	
	static{
		System.loadLibrary("NDKtest");
	}
}

loadLibrary中的文件名参见jni目录下.mk 文件的LOCAL_MODULE字段.

 4.实现本地方法

   在控制台中进入工程根目录中的bin目录下的classes目录中 ,执行如下命令 :

  javah -d <项目目录>\jni -jni com.example.ndktest.NativeInterface .

 命令可以参考 javah --help.

 -d 是文件的输出目录 ,这里指定为根目录下的jni文件夹, -jni 是生成jni样式的头文件 后面的参数是本地方法所在的类,类的路径名要完整 ,之前已经在classes目录下了 ,所以类的路径是从com开始的.  执行完该命令,会在工程下jni目录中产生com.example.ndktest.NativeInterface.h如图所示:

NDK开发_第3张图片

打开.h文件如图所示:

NDK开发_第4张图片

在cpp中添加头文件的引用include<com.example.ndktest.NativeInterface.h>,将头文件中的俩个方法拷贝到.cpp文件中 ,去掉方法名JNIEXPORT 和 JNICALL 之后,实现其具体方法,如图:

NDK开发_第5张图片

5.在java类中调用方法

如图:

NDK开发_第6张图片

 最后运行

6.ant脚本代替控制台输入

每一次修改java本地接口都要在控制台中执行javah命令,比较麻烦.

还有另一种方法,就是创建ant文件,右键工程点击New->File 创建 .ant文件,我起的名字是GenCI,如图:

NDK开发_第7张图片

,在eclipse菜单中选择windows->show View 选择ant ,将刚才创建的ant文件添加到ant的视图上 :

打开.ant文件 ,按alt+/  出现如下图:

 

之后将代码修改为如下:

NDK开发_第8张图片

project name是工程名 default设置为 .ant文件名 ,然后target name设为.ant 文件名.

executable是要执行的控制台命令 这里是javah. 命令执行路径是 项目中bin目录下的classes目录.

剩下的是命令参数. ,${basedir}是工程根目录.

之后双击antView上的ant文件会自动执行该脚本,生成.h文件.

最后运行项目.

Good Luck   




你可能感兴趣的:(NDK开发)