如何在Android Studio中查找项目里外部库的未使用公开API?
查找外部库未使用公开API的可行方案
调整IDE代码检查的范围和规则(以IntelliJ为例)
打开Code > Inspect Code,配置检查范围时必须同时包含你的应用代码和被导入的库代码。找到Unused declaration规则,修改配置:把检查范围限定为库的代码,开启对Public修饰符的检查,并且过滤掉库内部的调用记录——这样就能只统计应用侧有没有引用这些API。另外,记得去Settings > Build, Execution, Deployment > Compiler > Java Compiler里开启Enable annotation processing,确保IDE能正确识别跨模块的引用。用静态代码分析工具批量扫描
比如SpotBugs或PMD:- 给SpotBugs配置
UnusedMethod检测器,指定只扫描库的公开方法,过滤条件设为“仅标记未被应用代码引用的方法”,跑完直接生成报告。 - PMD可以自定义规则,基于
UnusedPrivateMethod改个版本,专门检查public方法在应用里的调用情况。
- 给SpotBugs配置
依赖分析工具找无引用API
用JDepend生成代码依赖图谱,直接筛选出库的公开API里没有被应用依赖的部分。或者用ASM这类字节码工具:先遍历库的class文件收集所有公开方法,再遍历应用的class文件统计每个方法的调用次数,次数为0的就是没被使用的。运行时追踪补漏(适合复杂场景)
如果静态分析有漏网之鱼,就用AOP给库的所有公开方法加个统一的计数或日志逻辑,然后让应用跑一遍所有业务流程,最后统计从来没被触发过的方法——这种方式能覆盖那些只有特定场景才会调用的API。
内容的提问来源于stack exchange,提问作者VolodymyrH
相关产品推荐
相关产品推荐

