配置Android项目 - 静态代码分析工具(二)

简介: 配置Android项目 - 静态代码分析工具(二)

PMD



PMD是一个源代码分析器。它发现常见的编程缺陷,如未使用的变量,空catch块,不必要的对象创建等等。


配置

要添加pmd到你的android项目那么需要创建script-pmd.gradle文件。

apply plugin:'pmd
task pmd(type: Pmd){
    ruleSetFiles.files("$project.rootDir/tools/rules-pmd.xml")
    source·fileTree('src/main/java/')
reports (
   xml.enabled=false
   html.enabled=true
   html.destination="$project.buildDir/outputs/pmd/pmd.html"

重要的pmd选项:

  • ruleSetFiles —pmd规则集文件的路径,你可以在其中压制问题并定义要跟踪的问题。
  • source —源代码的路径
  • html.destination —html报告生成的路径

将脚本script-pmd.gradle导入到build.gradle文件。

apply plugin:'com.android.application'
apply from:"$project.rootDir/tools/script-pmd.gradle"

测试

为了测试,我们将创建以下方法。

//MainActivity.java
...
private void someMethod(int a, int b, int c, int d) {
   if(a>b){
     if(b>c){
        if(c>d){
          if(d>a){
//some 1ogic

重新构建你的项目,然后使用./gradlew pmd命令运行pmd。如果它发现一些问题,你会看到类似下面的输出。


微信图片_20220514120849.png

当你打开pmd.html报告文件,你将看到问题列表与说明和如何解决它们的建议。


微信图片_20220514120853.jpg

如果你想忽略此问题,请将以下规则添加到rules-pmd.xml文件中。


<?xml version="1.e"?>
<ruleset xmlns:xsi-"http://www.w3.org/2001/XMLSchema-instance" 
xmlns-"http://pmd. sourceforge .net/ruleset/2.0.0'
xsiischemalocation-"http://pmd. sourceforge .net/ruleset/2.e.e http://pmd. sourceforge . net/ruleset
<rule ref="rulesets/java/basic.xml" />
crule ref="rulesets/java/braces.xml" />
<rule ref="rulesets/java/strings.xml" />
<rule ref=" rulesets/java/design.xml" >
  <exclude name="AvoidDeeplyNestedIfStmts"/>
  </rule>
  <rule ref-" rulesets/java/unusedcode.xml" />
</ruleset>

注意:还有其他方法压制pmd警告。有关pmd的更多信息,请访问官方网站。

相关文章
|
3天前
|
Java 开发工具 Android开发
探索Android与iOS开发的差异:平台选择对项目成功的影响
在移动应用开发的广阔天地中,Android和iOS两大平台各自占据着半壁江山。本文将深入探讨这两个平台在开发过程中的关键差异点,包括编程语言、开发工具、用户界面设计、性能优化以及市场覆盖等方面。通过对这些关键因素的比较分析,旨在为开发者提供一个清晰的指南,帮助他们根据项目需求和目标受众做出明智的平台选择。
|
1月前
|
Android开发
Android 分享机顶盒项目的封装类《GridView》(二)(转)
Android 分享机顶盒项目的封装类《GridView》(二)(转)
24 2
|
1月前
|
存储 Java 开发工具
在Eclipse配置安装Android详细教程(新手)
在Eclipse配置安装Android详细教程(新手)
68 1
|
3天前
|
监控 Android开发 iOS开发
探索Android与iOS开发的差异:平台、工具和用户体验的比较
【6月更文挑战第25天】在移动应用开发的广阔天地中,Android和iOS两大平台各领风骚,它们在开发环境、工具选择及用户体验设计上展现出独特的风貌。本文将深入探讨这两个操作系统在技术实现、市场定位和用户交互方面的关键差异,旨在为开发者提供一个全景式的视图,帮助他们在面对项目决策时能够更加明智地选择适合自己项目需求的平台。
|
8天前
|
开发工具 Android开发 iOS开发
探索安卓与iOS开发的差异:从工具到用户体验
【6月更文挑战第20天】在移动应用开发的广阔天地中,安卓和iOS两大平台各自占据半壁江山。本文将深入探讨这两个操作系统在开发环境、编程语言、用户界面设计以及性能优化等方面的关键差异。我们将通过比较分析,揭示各自平台的独特优势和面临的挑战,为开发者提供决策参考,并为最终用户提供更深层次的用户体验洞察。
|
10天前
|
Java Android开发 Swift
探索Android与iOS开发的差异:平台选择对项目成功的影响
【6月更文挑战第18天】在移动应用开发的广阔天地中,Android和iOS两大平台各据一方,它们在市场份额、用户群体及开发环境上各有千秋。本文将深入分析这两个操作系统的开发差异,探讨如何根据项目需求选择合适的平台,并讨论跨平台解决方案的可行性与挑战。我们将通过实际案例,揭示平台选择对项目成功的关键性影响,为开发者提供决策支持。
|
18天前
|
开发框架 Dart 开发工具
|
22天前
|
Java Android开发 Swift
探索安卓与iOS开发的差异:平台选择对项目成功的影响
在移动应用开发的浩瀚宇宙中,安卓和iOS这两大星系以其独特的引力影响着开发者的航向。本文将穿梭于这两个平台的开发环境、编程语言、用户界面设计、性能优化以及市场分布等方面,揭示它们之间的核心差异。我们将通过比较分析,为开发者提供决策时的参考坐标,帮助他们根据项目需求和目标受众选择合适的平台。加入我们,一起揭开安卓与iOS开发的神秘面纱,探索它们如何塑造移动应用的未来。
|
1月前
|
XML Java Android开发
Android 分享机顶盒项目的封装类《GridView》(三)(转)
Android 分享机顶盒项目的封装类《GridView》(三)(转)
20 2
|
1月前
|
Oracle Java 关系型数据库
Android零基础入门(一)配置环境和安装Android Studio
Android零基础入门(一)配置环境和安装Android Studio
42 0