自定义Lint

Posted by 彩笔学长 on December 16, 2016

Lint

在android studio中内置了大概200个左右的lint检查,比如定义变量未使用,直接Handler报内存泄漏提醒,时时刻刻在监督着我们的代码。自己定制了一些Lint规则,项目开源在GitHub上 https://github.com/xsfelvis/LintDemo

为什么需要自定义Lint

  • 原生Lint无法满足团队特有的需求,如:编码规范

  • 原生Lint存在一些检测缺陷或者缺少一些我们认为有必要的检测,如new Message等

自定义Lint,主要完成了以下功能

  • Actvity、Fragment布局文件名称前缀为actvity_fragment_的检查
  • Log、System.out.pritln打印必须为工程中自定义的AppLog检查(这个因项目而异)
  • 检测new Message,提醒使用Message.Obtain()/handler.obtainMessage
  • xml文件中各种控件命名规范化,如Buttion前缀为btn,适合规范化编程

依赖方式

采用LinkedIn提供了另一种思路 : 将jar放到一个aar中。这样我们就可以针对工程进行自定义Lint,lint.jar只对当前工程有效,使用前记得开启AS的支持自定义Lint检查功能,如下图

部分效果示意图