快速命令行工具,用于查找 Android 中的无效 Kotlin 和 Java 代码
使用 Rust 驱动的静态扫描器定位 Android 项目中无法访问的 Kotlin 和 Java 符号,该扫描器检查项目目录和 R8 映射。由 Kevin Doremy 创建,SearchDeadCode 旨在满足 Android 开发人员的工作流程和 CI 集成,通过命令行界面提供按需扫描。它结合了 Android 特定的项目支持、与 ProGuard/R8 映射文件的混合分析,以及旨在帮助团队清理大型代码库中的技术债务的轻量级设计。
SearchDeadCode 在 Android 代码库中识别什么?
SearchDeadCode 通过分析 Kotlin 和 Java 源文件执行专注的死代码检测,以查找未使用的类、方法和字段。该工具扫描项目目录,并支持 Android 特定的结构和依赖关系,生成不可达符号的列表。它还接受 R8 或 ProGuard 映射文件,通过混合分析来细化结果,从而改善混淆工件与源标识符之间的匹配。
扫描仪会影响系统资源或构建工作流吗?
Rust 实现保持执行快速和轻量级,因此与典型的解释器 linter 相比,扫描运行得很快。由于它是一个命令行程序,它适合自动化:CLI 可以按需或从 CI 管道中调用。分发选项包括通过 Cargo 和平台包进行安装,这使得团队可以将该工具脚本化到现有的构建或 lint 阶段,而不会产生大的运行时占用。
团队在真实项目中使用它安全吗且实用吗?
SearchDeadCode 专注于只读分析和报告,提供检测输出而不是自动删除代码。该工作流程通过让开发人员在更改之前审查候选项来降低风险。该工具旨在针对处理大型 Kotlin/Java 项目的移动工程师和 DevOps 团队;其 Android 识别检查和映射文件支持使其在结合开发人员审查步骤时,适用于生产库中的代码清理。
适合接受CLI工作流程的开发团队,具有仔细的审查步骤
SearchDeadCode适合需要快速、针对性的死代码报告并且能够运行命令行工具的Android工程师和构建团队。它加速了对不可达的Kotlin和Java符号的识别,同时保持更改为手动,因此团队可以控制删除。一个权衡是它报告候选项而不是执行安全的自动修剪,因此在删除之前将其输出纳入代码审查和测试中。