banner
NEWS LETTER

AndroidStudio编译libjpeg-turbo生成so库

Scroll down

下载开源库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库

其他文章
目录导航 置顶
  1. 1. 下载开源库libjpeg-turbo
  2. 2. 将libjpeg-turbo拷贝到新建的安卓工程项目下
  3. 3. 在build.gradle中添加
  4. 4. Build->Make Project开始编译
  5. 5. 创建Android.mk
  6. 6. 创建Application.mk
  7. 7. 在build.gradle中添加
  8. 8. Build->Make Project开始编译,会在libs目录下生成所编译的的so库
请输入关键词进行搜索