配置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的更多信息,请访问官方网站。

相关文章
|
11月前
|
开发工具 Android开发 iOS开发
如何在Android Studio中配置Flutter环境?
如何在Android Studio中配置Flutter环境?
2319 61
|
6月前
|
缓存 Unix Android开发
Android安卓项目调试之Gradle 与 Gradle Wrapper的概念以及常用gradle命令深度详解-优雅草卓伊凡
Android安卓项目调试之Gradle 与 Gradle Wrapper的概念以及常用gradle命令深度详解-优雅草卓伊凡
576 8
|
6月前
|
存储 API Android开发
【02】完整的安卓二次商业实战-配置gradle-构建打包原生安卓项目-调试本地运行模拟器-优雅草伊凡
【02】完整的安卓二次商业实战-配置gradle-构建打包原生安卓项目-调试本地运行模拟器-优雅草伊凡
420 4
【02】完整的安卓二次商业实战-配置gradle-构建打包原生安卓项目-调试本地运行模拟器-优雅草伊凡
|
6月前
|
Java 开发工具 Maven
【01】完整的安卓二次商业实战-详细的初级步骤同步项目和gradle配置以及开发思路-优雅草伊凡
【01】完整的安卓二次商业实战-详细的初级步骤同步项目和gradle配置以及开发思路-优雅草伊凡
568 6
|
8月前
|
存储 Android开发 数据安全/隐私保护
Thanox安卓系统增加工具下载,管理、阻止、限制后台每个APP运行情况
Thanox是一款Android系统管理工具,专注于权限、后台启动及运行管理。支持应用冻结、系统优化、UI自定义和模块管理,基于Xposed框架开发,安全可靠且开源免费,兼容Android 6.0及以上版本。
912 4
|
9月前
|
Android开发
安卓硬改一键新机工具,一键修改手机型号,串号网卡Imei、sn码【仅供学习参考】
声明部分:仅供学习参考使用,基于Xposed框架实现的设备信息伪装模块的完整代码,包含多个功能模块:
|
9月前
|
编解码 自然语言处理 Java
安卓改机工具免root,一键过设备检测,串号SN码【jar即可实现】
本项目通过Hook系统API实现设备信息的拦截与修改,主要功能包括动态更改IMEI/SN等设备标识。核心技术基于Xposed框架(免Root可用VirtualXposed)
|
8月前
|
监控 Android开发 数据安全/隐私保护
批量发送短信的平台,安卓群发短信工具插件脚本,批量群发短信软件【autojs版】
这个Auto.js脚本实现了完整的批量短信发送功能,包含联系人管理、短信内容编辑、发送状态监控等功能
|
8月前
|
API 开发工具 Android开发
qq虚拟视频插件下载安装手机版, 安卓虚拟视频插件,替换摄像头工具
Xposed入口模块:拦截目标应用的相机调用‌23 Camera1 API处理:通过PreviewCallback替换视频流‌1 Camera2 API适
|
9月前
|
存储 JSON API
安卓ck提取工具,可提取手机cookie插件,AUTOJS即可实现
怎么用autojs提取手机端的CK?其实autojs是支持提取ck的但是他提取的不是浏览器的CK,二十他自身浏览器环境的c