Java 用于检测Android中未使用或冗余代码的自动化工具

Java 用于检测Android中未使用或冗余代码的自动化工具,java,android,testing,Java,Android,Testing,我们目前正致力于向Google Play Store发布一个Android应用程序,在此之前,我们计划对我们的应用程序进行性能测试,以检测未使用和冗余的代码 例如,考虑下面的代码片段作为一个例子 double x = sqrt(2); if (x > 5) { doStuff(); } 市场上是否有任何测试工具可以检查源代码并帮助识别这些代码块?您可以使用Findbugs之类的库对代码进行静态代码分析,PMD,或者您可以使用Sonar runner在服务器上运行这些分析

我们目前正致力于向Google Play Store发布一个Android应用程序,在此之前,我们计划对我们的应用程序进行性能测试,以检测未使用和冗余的代码

例如,考虑下面的代码片段作为一个例子

 double x = sqrt(2); 
 if (x > 5) 
 {
   doStuff();
 }

市场上是否有任何测试工具可以检查源代码并帮助识别这些代码块?

您可以使用Findbugs之类的库对代码进行静态代码分析,PMD,或者您可以使用Sonar runner在服务器上运行这些分析,并在构建代码时将结果发布到SonarSource仪表板。同样,让这些东西在像Jenkins或TeamCity这样的持续集成服务器上运行也很好

检查如何与gradle构建集成。您还可以参考有关如何在gradle构建脚本中进行配置的文档


Sonar分析通常需要相当长的时间才能运行,因为除了静态代码分析之外,您还可以配置运行许多其他内容,如代码覆盖率、检查样式规则等,这可能会增加构建时间。因此,您可能应该配置为每晚运行这些分析,对于每个构建,您可以只运行FindBugs和Checkstyle来运行静态代码分析,这应该快得多。

您所说的“每晚运行”是什么意思。你能举个例子吗。Sonar也会自动为mecommonly识别这些块。只有“夜间”构建是每天自动创建的构建,包含所有天的更改。每晚运行某个东西基本上意味着使用每日构建运行它。它是夜间进行的,因为通常是在晚上进行的,没有人会更改代码中的内容。好了,现在有了“夜间构建”部分。你能解释一下我该如何进行这个过程吗。假设我选择PMD。它将进行静态代码分析,并给出一些结果。那么,我该如何在Jenkins服务器上使用这些结果呢?或者Jenkins服务器是否包含一些插件,可以在没有任何用户干预的情况下自动执行此操作?更新答案时,会显示如下内容,请尝试按照此操作。这应该能回答你所有的问题。嗨@JugalShah我试过使用PMD。但它无法检测不可到达的块lof代码。它显示了与变量声明等相关的错误,但没有显示代码无法访问