网上太多的博客讲JNI_HelloWord的例子,这个只适合初级的阶段,这里稍微加强点深度,先从初级讲起,手把手教你如何使用eclipse 自动编译,讲讲如何使用JNI实现C层与Java层相互调用。
本篇博客主要讲helloJNI的NDK自动编译,和使用外部工具生成JNi头文件
进入正题,第一步HelloJni
1.首先你的NDK是配好的,这里需要你在用户环境变量上添加环境变量A_buildCommond,变量值:G:/android/android-ndk-r9d/ndk-build.cmd
我的NDK是r9d在G:\android下面,上面变量的值斜杠不是反的,
2 在系统环境变量Path目录下同样复制上面的变量值,G:/android/android-ndk-r9d/ndk-build.cmd之后重启电脑,不重启后果自负。
.
3.打开你的eclipse这里你的eclipse应该已经是配置好SDK和Ndk的,创建一个Android Application程序,然后 new->other,转化为C/C++工程,如果你的eclipse没有这个那就说明
你要百度去自己想办法了
4,Next>选择Makefile project 和Cygwin GCC 然后finish
6.OK现在开始写native函数,这里在MainActivity。java里写上 public native String hellJNI();函数,
<p>package com.lipeng.testjnihello;</p><p>import android.app.Activity;
import android.os.Bundle;</p><p>
public class MainActivity extends Activity {</p><p> @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
public native String hellJNI();</p><p>
}
</p>
7.现在教你使用javah.exe生产JNI头文件
首先在eclipse中点击下图图标的下拉菜单
然后点击External Tools Configurations
会弹出下面的页面,然后在那3个地方分别填入下图中的命令Arguments: javah -classpath .;./classes -d "${project_loc} -jni ${java_type_name}"
Refresh打勾,选择如下图,只包含选择的资源