使用Android Lint检查代码缺陷

  • 2020 年 3 月 16 日
  • 筆記

背景

Android Lint 是Android自带的代码检查工具,它能帮助我们识别很多潜在的错误。

Lint 介绍

Android Lint 可以扫描android项目源代码中的潜在错误。它既可以作为命令行工具,也可以与Eclipse(如下所述)和Intellij(详细信息)集成。体系结构是有意独立于IDE的,因此它有望与其他IDE、其他构建工具以及持续集成系统集成。

下面是它查找的错误类型的一些示例:

  • 缺少转换(和未使用的转换)
  • 布局性能问题(旧布局工具用于查找的所有问题等)
  • 未使用的资源
  • 数组大小不一致(在多个配置中定义数组时)
  • 可访问性和国际化问题(硬编码字符串、缺少内容描述等)
  • 图标问题(如密度丢失、图标重复、大小错误等)
  • 可用性问题(如未在文本字段上指定输入类型)
  • 明显错误

它可帮助您发现并纠正代码结构质量的问题,而无需实际执行该应用,也不必编写测试用例。该工具会报告其检测到的每个问题并提供该问题的描述消息和严重级别,以便您可以快速确定需要优先进行哪些关键改进。此外,您可以调低问题的严重级别,忽略与项目无关的问题,也可以调高严重级别,以突出特定问题。

Lint 工具可检查您的 Android 项目源文件是否包含潜在错误,以及在正确性、安全性、性能、易用性、便利性和国际化方面是否需要优化改进。在使用 Android Studio 时,配置的 Lint 和 IDE 检查会在您每次构建应用时运行。

image.png

在命令行执行

./gradlew lint

加入仅仅仅仅检查 buildType=debug ,可以使用:

./gradlew lintDebug

执行完毕后,输入的内容如下:

image.png

查看报告

报告位于:app/build/reports/lint-results.html 它可能长这样:

image.png

接下来

查看报告,根据这些警告和提示修复代码,改进代码缺陷,提高代码质量。

我们可以将 Lint 工具集成到我们CI过程中去,构成研发体系的一部分。

扩展阅读

我们可能想做一些自定义设置,可以这么做

def configDir = "${project.rootDir}/config/quality"  def reportsDir = "${project.buildDir}/reports"        android {          lintOptions {              abortOnError true              xmlReport false              htmlReport true              lintConfig file("$configDir/lint/lint.xml")              htmlOutput file("$reportsDir/lint/lint-result.html")              xmlOutput file("$reportsDir/lint/lint-result.xml")          }      }

参考

https://developer.android.google.cn/studio/write/lint.html https://sites.google.com/a/android.com/tools/tips/lint https://www.jianshu.com/p/b4c44e62d652 这篇文章真的很详细。