NDK與JNI

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章