这可能是最好的AndroidLint开源库

本文介绍了一个通用的Android Lint库,该库提供代码规范检查、增量扫描功能,并支持自定义规则配置。通过配置文件,用户可以方便地进行多团队协作,同时库还包含对Lint的实时提示和命令行执行的支持。
摘要由CSDN通过智能技术生成

Android Lint

这是一个通用Android Lint库,你可以用它来检查代码规范、bug、资源命名等✌️。

本库最大特点是通用,相较于其他Lint库(规则直接在代码写死),最大的不同是,规则全靠配置生成,更加灵活,在多团队协作下,只需拷贝配置文件,修改提示信息即可完成迁移。

支持增量扫描功能,速度更快。

支持lint发现错误后自动执行脚本功能,更加友好。

对于增量扫描原理可以看Lint增量扫描实践,具体在项目中使用可以参考Android Lint代码检查实践

如果有感兴趣的大佬,欢迎一起开发、交流。

地址

https://github.com/RocketZLY/AndroidLint

项目结构

.

├── app // demo工程用来展示lint检查效果

├── checks // lint规则代码

├── custom_lint_config.json // 规则配置文件

├── lintlibrary // 空项目,依赖了checks用来生成aar包

├── lintpatch // 实现lint增量扫描、修复lint26.5.3bug的补丁代码

├── lintplugin // lint插件,用来增量扫描、执行脚本、简化配置、日志输出等

依赖

需要Android Gradle Plugin在3.5.0以上,目前我项目使用的是3.5.3实测ok。

根目录gradle

buildscript {
   
  repositories {
   
    jcenter()
  }
  dependencies {
   
    classpath "com.rocketzly:lintPlugin:$lastVersion"
  }
}

module gradle

apply plugin: "com.rocketzly.lintPlugin"

使用

添加依赖后,并在项目根目录下添加custom_lint_config.json规则配置文件(关于配置可以看后面的规则配置)

编码实时提示

添加依赖和配置文件后Rebuild一下(如果还不行则执行次./gradlew :${moduleName}:lintFull)即可编码实时提示。

有一点需要注意,AS对于Lint实时提示支持的不算特别好,少数情况下会出现编码时提示不了的情况,但是命令行执行生成报告结果都是正常的,所以以报告结果为准。

命令行执行

目前支持两个命令:

  • ./gradlew lintFull 全量扫描(只扫自定义issue)
  • ./gradlew lintIncrement -Pbaseline="xxx" -Prevision="xxx" 增量扫描(只扫自定义issue)

参数描述:

  • baseline:执行lintIncrement必须参数,用来设置基线代码分支或者commit节点
  • revision:执行lintIncrement必须参数,用来设置最新分支或者commit节点
  • scriptPath:可选参数,在lint发现错误的时候自动执行脚本路径,目前只支持执行python3和shell脚本

脚本入参

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值