以編譯LibJpeg為例,友善了解。
1.把下載下傳下來的libjpeg庫中的所有檔案都放在src/main/cpp 檔案夾下:
2.libjpeg庫中已經寫好了CMakeLists.text,隻需要引用一下就可以了,如果沒有則需要自己編寫CMakeLists.txt
3.編譯之後會生成so庫和必要的頭檔案:
4.編寫C檔案,把所需要的頭檔案放入cpp檔案夾下:
so庫放入jnilibs檔案夾下:
根據編寫JNI規則寫c代碼:
java目錄下編寫native方法:
5.編寫cmakeLists.txt
set_target_properties(libturbojpeg
PROPERTIES
IMPORTED_LOCATION "${libs}/${ANDROID_ABI}/libturbojpeg.so")
add_library( jni_jpeg
SHARED
src/main/cpp/libjpegTurbo.cpp )
find_library( log-lib
log )
target_link_libraries( jni_jpeg
turbo
yuv
${log-lib} )