NDK开发

1.准备工做

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

2.建立android工程

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

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

 右键工程,点击properties 如图: windows

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

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

3.编写java本地接口

   NativeInterface.java 代码以下: code

public class NativeInterface {

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

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

 4.实现本地方法

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

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

 命令能够参考 javah --help.

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


打开.h文件如图所示:

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

5.在java类中调用方法

如图:

 最后运行

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

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

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

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

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

 

以后将代码修改成以下:

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

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

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

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

最后运行项目.

Good Luck   

相关文章
相关标签/搜索