JNI:
1.编写java native 接口,编译生成class文件,可能需要指定android包到classpath中,比如:
javac -classpath c:/Android/android-sdk-windows/platforms/android-8/android.jar HwrCalcLib.java (其实eclipse工程的bin文件夹下会有该文件)
2.cmd进入到工程的bin目录,用javah命令生成头文件,比如:
javah -classpath . -jni com.samsung.hwrcalc.HwrCalcLib (如果不进入bin目录,指定全名称的classpath即可,注意需要完整的包名,而且class文件所在目录路径必须和包名称一致);成功后即可生成*.h头文件,
3.使用c语言把*.h中函数实现。然后使用NDK编译c文件生成*.so 供java调用。
NDK:
1.安装NDK:比如android-ndk-r5b-windows.zip解压到C:/Android/android-ndk-r5b
2.安装Cygwin (需要Cygwin 1.7 or later和GNU Make 3.81 or later)
3.在,~/.bash_profile(如果没有.bash_profile,可以自己新建一个)中 加入:
ANDROID_NDK_ROOT=/cygdrive/c/Android/android-ndk-r5b
export ANDROID_NDK_ROOT
4. 打开cygwin,输入$ cd $ANDROID_NDK_ROOT,配置正确的话就会成功转到本地的NDK目录下
5.测试:在本地的NDK目录下执行 $ ./ndk-build -C /cygdrive/c/Android/android-ndk-r5b/samples/hello-jni 或者cd到要编译的工程目录(目录中不能含有空格),再输入$ $ANDROID_NDK_ROOT/ndk-build即可。如果成功的话,会生成obj和libs两个目录。
至此可以将c源文件编译成库共java调用。