使用 Lint 来约束团队编码规范

前言

若是用 Lint 来约束团队编码规范呢?html

其实很简单,就是自定义 Lint。我以前也写过一篇文章:自定义 Lint,基于 AS 3.x APIjava

如今 AS 都已经到 4.1 了,不过有些东西尚未过期。android

最近又在 Medium 上看到一篇小姐姐写的 Lint 相关文章,自己东西不难,可是文章中列举了不少资源,真是感叹国外资源丰富呀!git

原文地址:Enforcing Team Rules with Lintgithub

若是你准备学一下 Lint 或者想了解一下 Lint,下面列举的资源可能对你很是有用。android-studio

下面是非正式翻译:markdown

几个月前,个人团队达成了一个协议,就是项目中的 TODO 要提供几个信息,好比谁要处理这个 todo、时间、解释说明这个 todo 要作啥。工具

为了方便,我写了一个 todo template:oop

这个 todo template 怎么写的见原文:zarah.dev/2020/03/06/…布局

可是有的小伙伴仍是会忘记,因而就使用自定义 Lint 来约束这种规范。

在 Android 系统中有一些咱们常见的 Lint 规则,好比:

  1. 忘记 call super() ,CallSuperDetector
  2. 约束布局 xml 里面忘记添加约束了,ConstraintLayoutDetector
  3. 过分绘制检查,OverdrawDetector

等等,在咱们本身写的时候能够参考系统的一些实现。

YouTube 上面也有一个视频来教你怎么写自定义 Lint:

Coding in style: Static analysis with Custom Lint Rules (Android Dev Summit '19

官方文档:Writing Custom Lint Rules

Google Simple: github.com/googlesampl…

Android 系统里面全部的 Lint 规则源代码:

cs.android.com/android-stu…

小结一下

首先知道 Lint 能干吗,Lint 就是一个静态分析工具,它可以处理源码(Java、Kotlin)文件、资源文件(layout 等)、Manifest、Gradle files 等。

上面也列举了系统中的不少实现,当须要自定义 Lint 规则时能够参考一下,资源不少,根本不慌~