前言
如果用 Lint 来约束团队编码规范呢?
其实很简单,就是自定义 Lint。我之前也写过一篇文章:自定义 Lint,基于 AS 3.x API
现在 AS 都已经到 4.1 了,不过有些东西还没有过时。
最近又在 Medium 上看到一篇小姐姐写的 Lint 相关文章,本身东西不难,但是文章中列举了很多资源,真是感叹国外资源丰富呀!
原文地址:Enforcing Team Rules with Lint
如果你准备学一下 Lint 或者想了解一下 Lint,下面列举的资源可能对你非常有用。
下面是非正式翻译:
几个月前,我的团队达成了一个协议,就是项目中的 TODO 要提供几个信息,比如谁要处理这个 todo、时间、解释说明这个 todo 要做啥。
为了方便,我写了一个 todo template:

这个 todo template 怎么写的见原文:zarah.dev/2020/03/06/…
但是有的小伙伴还是会忘记,于是就使用自定义 Lint 来约束这种规范。
在 Android 系统中有一些我们常见的 Lint 规则,比如:
- 忘记 call super() ,CallSuperDetector
- 约束布局 xml 里面忘记添加约束了,ConstraintLayoutDetector
- 过度绘制检查,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 规则源代码:
小结一下
首先知道 Lint 能干嘛,Lint 就是一个静态分析工具,它能够处理源码(Java、Kotlin)文件、资源文件(layout 等)、Manifest、Gradle files 等。
上面也列举了系统中的很多实现,当需要自定义 Lint 规则时可以参考一下,资源很多,根本不慌~