下载开源库libjpeg-turbo
https://github.com/libjpeg-turbo/libjpeg-turbo
将libjpeg-turbo拷贝到新建的安卓工程项目下
路径如图

在build.gradle中添加
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| android { defaultConfig { ··· ndk { abiFilters 'armeabi-v7a', 'arm64-v8a' } }
··· externalNativeBuild { cmake { //CMakeLists.txt文件路径 path file('src/main/cpp/libjpeg-turbo/CMakeLists.txt') } } }
|
Build->Make Project开始编译
编译完成之后,会在app/.cxx/cmake/debug/下生成所需的so库
创建Android.mk
1 2 3 4 5 6 7 8 9 10 11 12
| LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE :=libjpeg LOCAL_SRC_FILES :=libjpeg.so include $(PREBUILT_SHARED_LIBRARY) include $(CLEAR_VARS) LOCAL_MODULE :=compressimg // LOCAL_SRC_FILES :=compress_image.cpp //自己的文件 LOCAL_SHARED_LIBRARIES :=libjpeg LOCAL_LDLIBS := -ljnigraphics -llog include $(BUILD_SHARED_LIBRARY)
|
创建Application.mk
1 2 3
| APP_ABI := armeabi-v7a arm64-v8a APP_PLATFORM := android-9
|
在build.gradle中添加
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| android{ ··· defaultConfig { ···· ndk { abiFilters 'armeabi-v7a', 'arm64-v8a' } } sourceSets { main { jni.srcDirs = []//设置禁止gradle生成Android.mk jniLibs.srcDirs = ['libs'] } }
task ndkBuild(type: Exec) {//设置新的so的生成目录 //选择ndk的路径 commandLine "C:\\Application\\Develop\\SDK\\ndk-bundle\\ndk-build.cmd", 'NDK_PROJECT_PATH=build/intermediates/ndk', 'NDK_LIBS_OUT=libs', 'APP_BUILD_SCRIPT=jni/Android.mk', 'NDK_APPLICATION_MK=jni/Application.mk' }
tasks.withType(JavaCompile) { compileTask -> compileTask.dependsOn ndkBuild } ··· }
|
Build->Make Project开始编译,会在libs目录下生成所编译的的so库