第一步,配置java的环境,jdk和jre,这里就不说了
第二步,配置NDK,具体如下图(作者使用NDK版本为R10e)
将NDK Location设定为自己下载的NDK地址就行
第三步,加入原生支持:右键创建的项目,Android Tools>>Add Native Support
这里大家可以自己命名,点击确定之后,再看我们的项目文件,会生成一个jni文件夹,里边有一个HelloJNI.cpp文件和.mk文件,(HelloJNI为作者上一步的命名),打开Android.mk文件,会发现有一个LOCAL_SRC_FILES := HelloJNI.cpp
这就表明我们的HelloJNI的cpp文件加进来了
第四步,接下来我们可以在MainActivity.java的佟目录下建立一个CHello类,
下面是一些简单代码:
public class CHello { public native String getStr(); public static native int getNum(); //加载本机库 static{ //静态模块,第一次执行的时候加载 System.loadLibrary("HelloJNI"); } }
当java里没有native关键字的时候,需要在声明后加{}
如:public String getStr(){};
第五步,接下来 我们要用jni方法生成CHello对应的com_example_hellojni_CHello.h文件
ctrl+r ,输入cmd ,打开dos系统,进入项目的包目录
接下来 用javah -jni com.example.hellojni.CHello
指令生成CHello.java对应的cpp文件 复制进jni文件夹(当然也可以直接生成的时候保存到jni文件夹,这里就不说了)
第六步,打开com_example_hellojni_CHello.h 将以下代码复制进HelloJNI.cpp中(cpp文件中记得添加对应的头文件)
JNIEXPORT jstring JNICALL Java_com_example_hellojni_CHello_getStr (JNIEnv *, jobject); JNIEXPORT jint JNICALL Java_com_example_hellojni_CHello_getNum (JNIEnv *, jclass);
然后如图修改代码为:
第七步,在MainActivity.java文件中定义一个对象,输出
CHello h=new CHello(); System.out.println(h.getStr());
在LogCat中有这样的输出结果表示通信成功
Demo下载地址:http://download.csdn.net/download/doubleicefire/10050280
或者baidu链接: https://pan.baidu.com/s/1dFAi1Z7 密码: tvbr
共同学习,写下你的评论
评论加载中...
作者其他优质文章