如何列出Android NDK构建的AAR库中的所有开源依赖项?
嘿,这问题我刚好处理过几次,给你几个实用的方法来搞定AAR的依赖项排查,完全能满足你开源许可检查的需求:
方法1:用Android Studio可视化分析
这个最直观,适合快速查看完整依赖树:
- 先把你的AAR文件导入到Android项目里:点击
File -> New -> New Module -> Import .JAR/.AAR Package,选择你的AAR文件完成导入 - 导入后,打开右侧的「Gradle」面板,找到刚导入的AAR模块,展开
Tasks -> help,双击dependencies任务 - 等Gradle跑完,底部Run窗口会输出完整的依赖树,包括直接依赖、间接传递依赖,还能区分不同构建阶段(compile/runtime)的依赖
方法2:Gradle命令行批量/自动化分析
如果习惯用命令行或者需要写脚本批量处理,这个效率更高:
- 确保AAR已经作为模块导入项目,在项目根目录打开终端
- 执行命令:
./gradlew :你的AAR模块名称:dependencies(Windows系统换成gradlew.bat) - 要是只想看运行时的依赖,可以加过滤参数:
./gradlew :你的AAR模块名称:dependencies --configuration runtimeClasspath
方法3:手动解压AAR看基础依赖
如果不想导入项目,直接解压也能拿到核心依赖信息:
- 把AAR文件重命名为
.zip后缀,用解压工具打开 - 找到里面的
pom.xml文件(正规发布的AAR都会带这个),打开后看<dependencies>节点,这里会列出所有直接依赖 - 注意:这种方法看不到间接传递依赖,所以要完整依赖树的话,还是优先前两种方法
针对NDK构建库的额外检查
因为你的库是NDK构建的,可能包含native层的依赖,这部分也要注意:
- 解压AAR后看
jniLibs目录下的.so文件,对比常见开源库的特征(比如文件名、大小) - 如果能拿到库的源码或文档,找里面的LICENSE文件或者依赖声明注释
- 也可以用
nm命令分析.so文件的符号表,看是否引用了开源库的标志性函数
内容的提问来源于stack exchange,提问作者Sunshine
相关产品推荐
相关产品推荐

