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調用。