EIT形象的理解及android NDK开发demo

EIT造型的理解及android NDK开发demo

EIT:指的是引擎、接口、执行。即引擎利用接口去执行。

在java中E一般指的是父类,I接口一般指的是抽象方法和本地方法。T一般指的是子类(编译时候确定)或本地方法(运行时候确定)。其中I由基类决定。


利用JNI java和本地方法可以互相调用。


-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

android NDK 开发


第一步,配置NDK

在window----->preferences--------------->android-------->NDK中加载从谷歌下载的NDK


EIT形象的理解及android NDK开发demo


第二步、在sdk环境中建立一个android项目并右键工程,->Android Tools->Add Native Support。输入将要生成的.so文件的名字,点finish,如下图:

EIT形象的理解及android NDK开发demo

名字命名以lib开头llibxxxx.so。必须这样不如在加载动态库找不到!!!!!


第三步,右键工程,->Properties,点击C/C++ General展开,点击Path and Symbols,在右边Includes下,点击Add,把NDK文件夹下的jni头文件和相应的C++头文件添加进来。

EIT形象的理解及android NDK开发demo

第四步,在工程源文件的包中添加一个类,用于定义native函数接口,如下

public class HelloTest {
	

	
	public static native String getHello(String hello);

}

第五步,生成.h头文件

利用ADT生成。

在菜单栏中点Run->External Tools->External Tools Configurations,右键Program->New,在右边的main子窗口配置如下图,Name可以自己随便取一个名字。

EIT形象的理解及android NDK开发demo

参数如下:-classpath ${project_loc}\bin\classes -d ${project_loc}\jni -jni ${java_type_name}

EIT形象的理解及android NDK开发demo

EIT形象的理解及android NDK开发demo


然后选中有native接口的类,运行刚配置的javah即可得到头文件如下所示:

EIT形象的理解及android NDK开发demo

生成的头文件:

EIT形象的理解及android NDK开发demo

最后可以在cpp文件中写代码了:

#include <jni.h>
#include <stdio.h>
#include "com_example_jnitest_HelloTest.h"
JNIEXPORT jstring JNICALL Java_com_example_jnitest_HelloTest_getHello
  (JNIEnv *env, jclass _class, jstring _string){

	  return env->NewStringUTF("Hello from JNI!");
}