以编译LibJpeg为例,方便理解。

1.把下载下来的libjpeg库中的所有文件都放在src/main/cpp 文件夹下:

Android studio 编译NDK--使用cmake

2.libjpeg库中已经写好了CMakeLists.text,只需要引用一下就可以了,如果没有则需要自己编写CMakeLists.txt

Android studio 编译NDK--使用cmake

3.编译之后会生成so库和必要的头文件:

Android studio 编译NDK--使用cmake

 

 

Android studio 编译NDK--使用cmake

 

4.编写C文件,把所需要的头文件放入cpp文件夹下:

Android studio 编译NDK--使用cmake

so库放入jnilibs文件夹下:

Android studio 编译NDK--使用cmake

根据编写JNI规则写c代码:

Android studio 编译NDK--使用cmake

java目录下编写native方法:

Android studio 编译NDK--使用cmake

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} )

 

 

相关文章: