查找APK中.so原生库所属依赖项的最简单方法是什么
快速定位APK中.so文件归属依赖项的最简方法
可视化方案(无命令行,操作最简便)
- 打开Android Studio顶部菜单栏的
Build > Analyze APK,选中你要分析的目标APK文件 - 在打开的APK分析页面中,进入
lib目录下对应ABI架构的文件夹,点击你要查询的.so文件 - 右侧详情面板会直接展示该.so文件所属的第三方依赖/本地模块信息,不需要额外安装工具或执行命令
命令行方案(适合自动化场景、无GUI环境)
- 先从APK的
lib目录中提取目标.so的文件名特征,比如要查询libijkplayer.so,提取特征ijkplayer即可 - 在项目根目录打开终端,执行对应构建变体的依赖树查询命令(将
<构建变体>替换为你打包时使用的变体,比如release、debug,<特征字符串>替换为上一步提取的文件名特征):
# macOS/Linux 环境 ./gradlew -q app:dependencies --configuration <构建变体>RuntimeClasspath | grep -B2 -A10 "<特征字符串>" # Windows 环境 gradlew -q app:dependencies --configuration <构建变体>RuntimeClasspath | findstr "<特征字符串>"
- 输出结果中会直接展示该so所属依赖的完整坐标,以及依赖引入的层级链路
注意:如果so文件名和依赖名不匹配,你可以到对应依赖的开源仓库或Maven索引页查看其包含的so文件列表做匹配验证
内容的提问来源于stack exchange,提问作者android_dev
相关产品推荐
相关产品推荐

