在 Android Studio 中使用 Gradle 构建工具,进行编译和打包,生成 .so 动态链接库。
时间: 2024-03-17 18:43:32 浏览: 113
Android Studio 对so库的操作
在 Android Studio 中使用 Gradle 构建工具进行编译和打包,生成 .so 动态链接库,可以按照以下步骤进行:
1. 在 Android Studio 中创建一个 C/C++ 模块,选择 File -> New -> New Module -> C/C++ Library,然后按照向导设置模块名称、语言类型和支持的 ABI。
2. 在模块的 build.gradle 文件中,添加以下配置:
```groovy
android {
// 指定支持的 ABI,包括 armeabi-v7a、arm64-v8a、x86、x86_64 等
ndk {
abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64'
}
// 配置 CMakeLists.txt 文件路径
externalNativeBuild {
cmake {
path "CMakeLists.txt"
}
}
}
// 配置 CMake 版本
cmake {
version "3.10.2"
}
```
3. 在模块的 src/main 目录下创建 jni 文件夹,并将 C/C++ 代码放入该文件夹中。
4. 在 jni 文件夹下创建 CMakeLists.txt 文件,并编写编译选项和链接选项,指定生成 .so 文件的名称和路径,以及引入其他依赖库等。例如:
```cmake
# 设置编译选项
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
# 设置源文件路径
file(GLOB_RECURSE SOURCE_FILES "*.cpp")
# 设置头文件路径
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include)
# 配置动态库输出路径和名称
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/src/main/jniLibs/${ANDROID_ABI})
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG ${PROJECT_SOURCE_DIR}/src/main/jniLibs/${ANDROID_ABI})
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE ${PROJECT_SOURCE_DIR}/src/main/jniLibs/${ANDROID_ABI})
set(CMAKE_LIBRARY_OUTPUT_NAME "native-lib")
# 引入其他依赖库
find_library(log-lib log)
# 生成动态库
add_library(native-lib SHARED ${SOURCE_FILES})
target_link_libraries(native-lib ${log-lib})
```
5. 点击 Android Studio 工具栏中的 Build -> Make Project,进行编译和打包,生成 .so 动态链接库。
6. 在模块的 build.gradle 文件中查看生成的 .so 文件路径,例如:
```groovy
android {
externalNativeBuild {
cmake {
path "CMakeLists.txt"
}
}
sourceSets {
main {
jniLibs.srcDirs = ['src/main/jniLibs']
}
}
}
```
以上就是在 Android Studio 中使用 Gradle 构建工具进行编译和打包,生成 .so 动态链接库的步骤。
阅读全文