Android 自定义Lint 基础教程

Posted 杨哲丶

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android 自定义Lint 基础教程相关的知识,希望对你有一定的参考价值。

调试Lint 插件

  1. android项目中,以源码形式依赖自定义Lint代码(和示例代码一致)。

  2. 提前在自定义Lint代码中打好断点。注意不是Android代码,而是编译期间Gradle加载执行的代码。

  3. 在Android Application模块的build.gradle中关闭Lint的abortOnError选项,以免还没到断点时build就中止了。

    lintOptions 
        abortOnError false
    
    
  4. 在Android Studio的运行参数(Run Configurations)中添加一个Remote类型,都取默认值即可。

  5. 打开一个命令行窗口,执行命令

    export GRADLE_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005"
    
  6. 还是在这个命令行窗口,执行Gradle任务

    ./gradlew clean lintDebug -Dorg.gradle.daemon=false -Dorg.gradle.debug=true --no-daemon
    

设置参数关闭Gradle Deamon , 执行后Gradle会等待Android Studio调试器连接。

  1. Android Studio使用刚配置的Remote运行参数,点击调试箭头按钮,连接到Gradle就会开始执行,执行到Lint任务时就会在断点处中断,可以正常调试Java源码。
  2. 命令行执行unset GRADLE_OPTS,可关闭Gradle调试

运行方法

gralde 版本 3.x
app 是moudle 的名字,需要 clean 保证 100% 生效

./gradlew clean  app:lintDebug

代码在 github 上

完整Sample Github 地址 开箱即用

官方参考资料

可以参考google 自带的检测方式,模仿写:
Google 自带Lint 检查,参考资料

Lint 源码分析

浅谈 Android 自定义 Lint 规则的实现 (一)

浅谈 Android 自定义 Lint 规则的实现 (二)

Android Lint 工作原理剖析

以上是关于Android 自定义Lint 基础教程的主要内容,如果未能解决你的问题,请参考以下文章

自定义 android lint 规则未执行

Android 自定义 lint 规则未检测到任何问题(对于导入)

编写自定义 lint 警告以检查自定义注释

Lint 基础结构错误原因:java.lang.reflect.InvocationTargetException - Android Studio 4.2.2

Carson带你学Android:自定义View Canvas类使用教程

深入探讨Android异步精髓Handler