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

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

静态代码分析工具


静态代码分析工具 - 分析代码而不执行它。通常用于发现错误或确保符合编码指南。有助于保持你的代码健康,并保持代码质量。

在Android上,最流行的代码分析工具是:

  • Lint
  • PMD
  • Findbugs

我通常将静态代码分析脚本和相关文件保存在单独的文件夹中。


Lint


lint工具检查你的Android项目源文件是否存在潜在错误,并针对正确性,安全性,性能,可用性,可访问性和国际化进行优化改进。

配置


添加lint到你的android项目创建script-lint.gradle文件。


重要的lint选项:

  • lintConfig —lint规则集的路径(可以用来配置压制警告)。
  • htmlOutput —html报告生成的地方。

将script-lint.gradle导入到build.gradle文件。

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

测试


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

微信图片_20220514120756.png

当你打开lint.html报告文件时,你将看到问题列表描述,和如何解决它们的建议。

微信图片_20220514120800.jpg

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

<?xml version="1.0" encoding="utf-8"?>
<lint>
   <issue id="GoogleAppIndexingWarning" severity="ignore" />
</lint>

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


Findbugs


静态代码分析工具,用于分析Java字节码并检测各种各样的问题。

配置

要添加findbug到你的android项目需要创建script-findbugs.gradle文件。


apply plugin:'findbugs'
task findbugs(type: FindBugs){
    excludeFilter.file("$project.rootDir/tools/rules-findbugs.xml")
    classes=fileTree("Sproject.buildDir/intermediates/classes/dev/debug/com/dd" )
    source = fileTree("$project.rootDir/src/main/java/com/dd/")
    classpath = files()
    reports{
       xml. enabled.false
       html.enabled.true
       html.destination="$project.buildDir/outputs/findbugs/findbugs,html"

重要的findbugs选项:

  • excludeFilter —findbugs规则集文件所在的路径,你可以在其中压制问题。
  • classes — 生成的类的路径(如果你有多个flavor,路径由flavor名称组成,在当前情况下为“dev”)。
  • source —源代码的路径
  • html.destination —html报告生成的路径

将script-findbugs.gradle导入到build.gradle文件。

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

测试

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

//MainActivity.java
...
private void someMethod(int variable){
   switch (variable){
      case 1:
          System.out.println("1");
      case 2:
          System.out.println("2");

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


微信图片_20220514120824.png

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

微信图片_20220514120827.jpg

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

<FindBugsFilter>
   <Bug pattern="SF_ SWITCH_NO_DEFAULT" />
   <Bug pattern="SF_ SWITCH_FALLTHROUGH" />
</FindBugsFilter>

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


相关文章
|
3天前
|
Android开发 芯片 开发者
Android MediaTek bootloader 的序列号长度 & 移除非字母和数字限制 SN-Writer工具支持写入
Android MediaTek bootloader 的序列号长度 & 移除非字母和数字限制 SN-Writer工具支持写入
10 0
|
4月前
|
Web App开发 移动开发 小程序
"项目中mpaas升级到10.2.3 适配Android 14之后 app中的H5以及小程序都访问不了,
"项目中mpaas升级到10.2.3 适配Android 14之后 app中的H5以及小程序都访问不了,显示“网络不给力,请稍后再试”,预发内网版本不能使用,线上版本可以正常使用,这个是什么原因啊,是某些参数没有配置吗,还是说是一些参数改错了?
59 2
|
2天前
|
运维 网络协议 Linux
Android 双网卡配置为连接到Android主机的PC提供外网访问(1)
Android 双网卡配置为连接到Android主机的PC提供外网访问(1)
14 0
|
2天前
|
Android开发
Android源代码定制:添加customize.mk文件进行分项目和分客户的定制
Android源代码定制:添加customize.mk文件进行分项目和分客户的定制
2 0
|
3天前
|
Android开发
Android 动态修改参数配置
Android 动态修改参数配置
11 0
|
20天前
|
Android开发 开发者
Android开发之OpenGL的画笔工具GL10
这篇文章简述了OpenGL通过GL10进行三维图形绘制,强调颜色取值范围为0.0到1.0,背景和画笔颜色设置方法;介绍了三维坐标系及与之相关的旋转、平移和缩放操作;最后探讨了坐标矩阵变换,包括设置绘图区域、调整镜头参数和改变观测方位。示例代码展示了如何使用这些方法创建简单的三维立方体。
17 1
Android开发之OpenGL的画笔工具GL10
|
2月前
|
Java Android开发 C++
安卓SO层开发 -- 第一个NDK项目
安卓SO层开发 -- 第一个NDK项目
16 0
|
3月前
|
IDE 开发工具 Android开发
Android Studio 下发布项目成APK文件
Android Studio 下发布项目成APK文件
118 1
|
3月前
|
JavaScript Android开发
Cordova 打包 Vue 项目到Android打开白屏
Cordova 打包 Vue 项目到Android打开白屏
|
4月前
|
开发工具 Android开发 开发者
Android 项目编译 Gradle 配置说明
Android 项目编译 Gradle 配置说明
151 0