Android Studio使用so(MacOS)

本文介绍如何在Android Studio中集成SO库。通过两种方法:一是将SO文件放置于新建的jniLibs目录;二是直接放入libs目录并在build.gradle中进行配置。此外,还介绍了如何在代码中使用这些SO库。

996.icu LICENSE

  • 问题背景
  • 解决方法
  • 总结

阅读之前注意:

本文阅读建议用时:10min
本文阅读结构如下表:

项目下属项目测试用例数量
问题背景0
解决方法1
总结0

问题背景

Android Studio进行开发,在项目中需要使用so库,so是其他人提供的已经编译好的库。

解决方法

  1. 方法一:在项目src/main/目录下新建jniLibs目录,把对应架构的so文件拷贝过去即可,如下图:
    在这里插入图片描述

  2. 方法二:把对应架构的so直接拷贝到libs目录下,然后在build.gradle中添加设置即可,如下图:
    在这里插入图片描述

设置的文本内容如下:

sourceSets {
	main {
		jniLibs.srcDirs = ['libs']
	}
}

至于使用so中的对应方法,示例如下:
在这里插入图片描述

在这里插入图片描述

总结

添加so库,可以新建jniLibs目录放入so,或者把so直接放入Libs目录再修改build.gradle设置。使用so库,则先载入动态库,再声明so中的接口即可。
如果本文对你有帮助,不如请我一罐可乐吧 🎃
在这里插入图片描述

参考资料

  1. Android Studio加载so库和调用native方法——libs目录
  2. Android studio添加so文件 2种方法

Android 开发中,`.so` 文件(Shared Object)是 **动态链接库文件**,通常是用 C/C++ 编写的原生代码编译生成的,供 Android 应用通过 JNI(Java Native Interface)调用。它们类似于 Windows 下的 `.dll` 文件或 macOS 下的 `.dylib` 文件。 ### Android 中 `.so` 文件的作用: - 提供高性能计算能力(如图像处理、音视频编码解码、游戏引擎等)。 - 保护关键代码逻辑(原生代码比 Java 更难反编译)。 - 复用已有 C/C++ 代码库。 ### `.so` 文件的存放位置: Android 项目中,`.so` 文件通常放在以下目录结构中: ``` app/src/main/jniLibs/ ├── armeabi-v7a/ ├── arm64-v8a/ ├── x86/ └── x86_64/ ``` 每个 ABI(Application Binary Interface)目录下存放对应架构的 `.so` 文件。构建 APK 时,Gradle 会根据 `abiFilters` 设置将对应的 `.so` 打包进 APK。 --- ### 在 Android Studio 中构建 `.so` 文件: 如果你使用 C/C++ 开发,可以通过 **Android NDK + CMake** 或 **ndk-build** 来构建 `.so` 文件。 #### 1. 配置 `CMakeLists.txt` 文件: ```cmake cmake_minimum_required(VERSION 3.10.2) add_library( # Sets the name of the library. native-lib # Sets the library as a shared library. SHARED # Provides a relative path to your source file(s). src/main/cpp/native-lib.cpp ) find_library( log-lib log ) target_link_libraries( native-lib ${log-lib} ) ``` #### 2. 在 `build.gradle` 中启用 CMake 构建: ```groovy android { ... externalNativeBuild { cmake { cppFlags "" } } } ``` --- ### 常见问题处理: - **UnsatisfiedLinkError**:表示找不到对应的 `.so` 文件,可能是架构不匹配、路径错误或未正确加载。 - **如何查看 APK 中的 `.so` 文件**: - 使用 `APK Analyzer`(Android Studio 内置工具) - 或使用命令解压 APK 后查看 `lib/` 目录 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值