首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏潇涧技术专栏

    Custom Lint in Action

    包括了lint-api、lint-checks、lint-tests三个子目录,分别是lint核心API、自带的lint检查项以及lint测试代码。 关于这部分内容最主要的学习文档就是Google-自定义Lint规则说明文档,对应的google sample项目源码,思路大致是依赖lint-api创建自己的lint规则,然后将自定义的lint规则打包成 /build/libs/custom-lint.jar ~/.android/lint/ lint --list 除了将自定义lint规则的jar包复制到~/.android/lint目录下这种方式外, export ANDROID_LINT_JARS=~/.android/lint_bak/android-custom-lint-rules.jar lint --list 此外,除了执行. 还有,将lint.jar打包到aar中为什么也可以实现自定义lint检查呢?这些问题需要我们去阅读lint工具的源码才能够真正解开谜底,欢迎阅读Lint工具源码解析(1)。

    1.4K10发布于 2018-08-01
  • 来自专栏逮虾户

    再谈Android Lint

    我之前写的Lint的文章,只从实现层之类的去描述了下如何自定义一个lint扫描规则,但是也没有说清楚什么lint到底是基于什么去写的,这边进一步进行一次补充。 Android Lint ? 在Android Studio 3.0和lint-api 25.4.0版本中,Lint工具将PSI替换为UAST,同时推荐使用新的UastScanner。 在不熟悉API的情况下如何更好的写一个Lint呢? 以我个人的开发经验来看,我会从Android原生提供的Lint规则中去寻找可能适合我的逻辑。 lint了。

    1.9K40发布于 2020-10-15
  • 来自专栏逮虾户

    再谈Android Lint

    我之前写的Lint的文章,只从实现层之类的去描述了下如何自定义一个lint扫描规则,但是也没有说清楚什么lint到底是基于什么去写的,这边进一步进行一次补充。 在Android Studio 2.2和lint-api 25.2.0版本中,Lint工具将Lombok AST替换为PSI,同时弃用JavaScanner,推荐使用JavaPsiScanner。 在Android Studio 3.0和lint-api 25.4.0版本中,Lint工具将PSI替换为UAST,同时推荐使用新的UastScanner。 在不熟悉API的情况下如何更好的写一个Lint呢? 以我个人的开发经验来看,我会从Android原生提供的Lint规则中去寻找可能适合我的逻辑。 lint了。

    55510编辑于 2024-01-27
  • 来自专栏潇涧技术专栏

    Lint Tool Analysis (2)

    Lint工具的源码分析(2) 本系列的几篇源码分析文档意义不大,如果你正好也在研究lint源码,或者你想知道前面自定义lint规则中提出的那几个问题,抑或你只是想大致了解下lint的源码都有些什么内容的话 通俗来讲,LintClient是指去调用lint检查的来源(客户端),它会提供执行lint检查的相关环境信息。 当我们在终端输入lint命令的时候,lint脚本会自动帮我们设置com.android.tools.lint.bindir的值,这个我们后面分析lint脚本源码的时候可以看到。 从下面的代码片段中我们终于可以知道为什么放在~/.android/lint目录下的自定义lint规则的jar包能够被识别,指定ANDROID_LINT_JARS环境变量也能够识别,或者将lint.jar 解析文件时出错了;LINT_ERROR表示lint检查过程中出现错误,但不是用户代码的错误;CANCELLED表示用户取消了lint检查。

    2.6K20发布于 2018-08-01
  • 来自专栏数字芯片

    spyglass | 常见错误lint

    我们将分析 lint目标运行期间产生的违规行为。我们可以使用 SpyGlass GUI 中的各种调试工具来了解违规,在 RTL 代码中调试,并查看如何在 SpyGlass 环境本身中修复这些违规。 使用以下命令打开 SpyGlass GUI,将自动加载上次运行目标 (lint/lint_rtl) spyglass -project wb_subsystem.prj & 在没有-batch时,SpyGlass /wb_subsystem/wb_subsystem/lint/lint_rtl/wb_subsystem_waiver_file.awl 我们可以将其复制到当前工作目录下,方便调用: cp . /wb_subsystem/wb_subsystem/lint/lint_rtl/wb_subsystem_waiver_file.awl .

    13.1K23发布于 2021-10-11
  • 来自专栏Open软件开发小组

    AndroidLintWatchDog Custom-Lint 自定义Lint检查的实现

    2 解决 类型1: 如果你根本没听说过 Lint,请赶紧 Google 一下 Android Lint。 同时,Android Lint 也支持自定义 Lint 规则,以便开发者灵活应用,更好地提升项目代码质量。 2 为什么要使用自定义Lint检查 Google 提供的默认 Lint 检查很全面但是我们终归会有很多项目特性、自定义规则无法满足,如开头我提到的几个案例,这时候我们需要自定义 Lint 3 自定义 Lint 入门 & Custom-Lint 核心API 说明:此部分可参见教程:自定义 Lint 规则简介,这里仅罗列大体思路和使用时的备注。 A. Gradle配置包 compile 'com.android.tools.lint:lint-api:25.2.0' compile 'com.android.tools.lint:lint-checks

    1.1K20发布于 2020-03-19
  • 来自专栏潇涧技术专栏

    Builtin Lint Detectors (1)

    Lint工具中自带的与Android开发相关的lint检查项。 本文主要介绍的是Lint工具中自带的与Android开发相关的lint检查项,通过查看lint检查项的描述及其代码实现,我发现这里面存在不少应用开发编码的Best Practice,有些是平常编码中非常常见的错误 至于如何将检查项开启/关闭或者配置某个检查项忽略某些文件或文件夹等内容请参见之前的几篇Lint文档。 在Java代码中屏蔽掉某个lint检查可以使用@SuppressLint这个注解,例如@SuppressLint("UseSparseArrays") 在XML代码中屏蔽掉某个lint检查可以使用tools 默认的最大深度是10,但是我们可以通过ANDROID_LINT_MAX_DEPTH这个环境变量来修改它。

    92210发布于 2018-08-01
  • 来自专栏潇涧技术专栏

    Lint Tool Analysis (3)

    Lint工具的源码分析(3) 本系列的几篇源码分析文档意义不大,如果你正好也在研究lint源码,或者你想知道前面自定义lint规则中提出的那几个问题,抑或你只是想大致了解下lint的源码都有些什么内容的话 Lint检查器的前提知识 首先我们需要了解的是,lint工具在实现lint检查时使用了Visitor设计模式,推荐阅读这篇文章看下一般如何来实现这个设计模式。 最后,关于lint工具的实现还有不少有意思的槽点,下面的几段英文内容摘录自google code上关于lint工具的一个讨论,其中lint开发者解释了他们在实现Java文件解析时的技术方案选型原因、目前存在的问题以及将来的开发方向 这也导致如果项目中使用了旧的API自定义的lint规则的话,lint会对这个文件检查两次,从而使得lint检查的速度变慢。 当我们自定义lint检查器的时候需要注意 lint-api的版本问题,不同版本的Java检查器需要实现的接口有差异。

    1.2K10发布于 2018-08-01
  • 来自专栏潇涧技术专栏

    Lint Tool Analysis (1)

    Lint工具的源码分析(1) 本系列的几篇源码分析文档意义不大,如果你正好也在研究lint源码,或者你想知道前面自定义lint规则中提出的那几个问题,抑或你只是想大致了解下lint的源码都有些什么内容的话 在前面的Custom Lint in Action中我们了解到将自定义的lint规则打包成jar,然后放在~/.android/lint/目录下的话,我们就能够应用这些规则对工程进行静态代码扫描了。 lint工具源码主要分成两部分:lint-api和lint-checks,前者主要是lint的核心API,后者是利用API定义的检查器。 其中lint-api又分为detector.api和client.api这两个包,其中detector.api这个包主要是和lint检查器相关的类,client.api这个包主要是和调用lint检查有关的类 > <lint> <!

    1.3K10发布于 2018-08-01
  • 来自专栏希里安

    一文了解Lint

    ### lint背景 lint 是源代码静态分析工具的统称。它通过分析源代码本身的错误、不规范之处,在不运行代码的情况下检测出潜在问题。 lint 工具主要有以下作用: 1. ### 理念 lint的理念和目的是使用静态分析提高代码质量与健壮性。 到这应该明白作为程序员我们都应该学习并运用适合自己语言和项目的 lint 工具。 Go lint:由 Go 团队维护,用于 Go 语言 地址: https://github.com/golang/lint 快速开始: go get -u golang.org 在package.json文件中添加以下内容: "scripts": { "lint": "eslint src" }, 运行以下命令: npm run lint 即可使用eslint检查项目中的代码 [2]: https://doc.vvbin.cn/dep/lint.html

    1.3K11编辑于 2023-10-30
  • 来自专栏OpenFPGA

    使用 Verilator 进行 Verilog Lint

    基本 Linting 对于独立模块,linting 本身就很简单: verilator --lint-only -Wall foo.v --lint-only- 告诉 Verilator 进行 lint Use "/* verilator lint_off WIDTH */" and lint_on around source to disable this message. x + y; /* verilator lint_on WIDTH */ end 这仅仅是隐藏了问题,却没有采取任何措施。 以下 shell 脚本 lint 与该脚本位于同一目录中的所有顶级模块: #! 总结 今天关于Verilator 进行 Verilog Lint介绍就这样,这是一个功能强大的工具,希望有兴趣的可以尝试一下~

    1K10编辑于 2023-09-21
  • 来自专栏向治洪

    android 自定义Lint

    为什么要自定义 我们在实际使用Lint中遇到了以下问题: 原生Lint无法满足我们团队特有的需求,例如:编码规范。 原生Lint存在一些检测缺陷或者缺少一些我们认为有必要的检测。 :lint-api:24.5.0' compile 'com.android.tools.lint:lint-checks:24.5.0' } 注:lint-api: 官方给出的API,API并不是最终版 这样我们就可以针对工程进行自定义Lintlint.jar只对当前工程有效。 详细介绍请看LinkedIn博客: Writing Custom Lint Checks with Gradle。 LinkedIn实践 在确定方案后,我们为Lint增加了很多功能,包括编码规范和原生Lint增强。这里以HashMap检测为例,介绍一下Lint。 于是我们想到开发一个plugin,统一管理lint.xml和lintOptions,自动添加aar。 统一lint.xml 我们在plugin中内置lint.xml,执行前拷贝过去,执行完成后删除。

    1.6K100发布于 2018-02-06
  • 来自专栏everhad

    Android代码分析工具lint学习

    1 lint简介 1.1 概述 lint是随Android SDK自带的一个静态代码分析工具。 1.2 lint工作流程 针对我们的项目,通过lint.xml配置lint分析的选项,执行检查后,会针对要分析的issue生成报告。 ? lint检查结果分warning和error两个等级,可以忽略warning问题。 2.2 检查的方面 lint工具提供了对代码的一系列不同方面的问题进行检查的功能。 > <lint> <! 小结 使用lint进行代码的检查和分析十分简单高效,在发布版本前,使用lint对工程进行优化,何乐而不为。

    1.6K90发布于 2018-01-08
  • 来自专栏移动开发

    Android 自定义 Lint 调试

    在编写好的 Lint 检查规则里,打好需要调式的断点。在 Teminal 窗口下执行以下命令 .

    1.2K20发布于 2021-01-27
  • 来自专栏逮虾户

    Android自定义lint开发

    lint配置 对于执行 Lint 操作的相关配置,是定义在 gradle 文件的 lintOptions 中,可定义的选项及其默认值 android { lintOptions { 则只报告错误 ignoreWarnings true // 重新指定 Lint 规则配置文件 lintConfig file("default-lint.xml :lint-api:26.4.2' compileOnly 'com.android.tools.lint:lint-checks:26.4.2' } sourceCompatibility = "1.8" targetCompatibility = "1.8" jar { manifest { attributes("Lint-Registry-v2": "com.xxx.lint.router 如何实现自定义lint规则 我这边简单的介绍下Detector类。

    1.2K40发布于 2020-10-15
  • 来自专栏写代码和思考

    使用Android Lint检查代码缺陷

    背景 Android Lint 是Android自带的代码检查工具,它能帮助我们识别很多潜在的错误。 Lint 介绍 Android Lint 可以扫描android项目源代码中的潜在错误。 我们可以将 Lint 工具集成到我们CI过程中去,构成研发体系的一部分。 /lint.xml") htmlOutput file("$reportsDir/lint/lint-result.html") xmlOutput file ("$reportsDir/lint/lint-result.xml") } } 参考 https://developer.android.google.cn/studio/write /lint.html https://sites.google.com/a/android.com/tools/tips/lint https://www.jianshu.com/p/b4c44e62d652

    1.5K00发布于 2020-03-16
  • 来自专栏韩曙亮的移动开发专栏

    【Android Gradle 插件】LintOptions 配置 ③ ( LintOptions#error 方法配置 | Lint 问题 ID | 查询 Lint 问题 ID 列表 )

    文章目录 一、LintOptions#error 方法配置 1、配置简介 2、Lint 问题 ID 3、error 方法原型 4、使用示例 二、lint 的有效问题 id 字符串 Android Plugin 问题 id 或者多个 id ; Lint 的 问题 id 指的是 Lint 检查 , 会检查出各种问题 , 问题 ID 就表示该问题的类型 , 上述配置的作用是 , 如果检查出 该 问题 ID 对应的问题 , 则将其判定为 error 级别的错误 ; 2、Lint 问题 ID lint 的 id 指的是执行 lint --list 命令 , 打印出的 有效问题 id ( Valid issue id’s 的有效问题 id 字符串 ---- 执行 lint --list 命令 , 会打印出所有的 有效事件 id ( Valid issue id’s ) : D:\001_Develop\001_SDK\ Sdk\tools\bin>lint --list Valid issue categories: Correctness Correctness:Messages Correctness

    1.6K30编辑于 2023-03-30
  • 来自专栏iSharkFly

    代码的 Lint 是什么意思

    lint 是最著名的C语言工具之一,是由贝尔实验室 SteveJohnson 于1979在PCC(PortableC Compiler)基础上开发的静态代码分析,一般由UNIX系统提供。 Lint 这个单词的本意就是衣服上的棉球,通过 Linting 这个单词的意思就是去除代码中可能存在问题的意思。 https://www.ossez.com/t/lint/13478

    5K01发布于 2021-05-16
  • 来自专栏零域Blog

    husky+lint-staged助力团队编码规范

    ---- lint-staged lint-staged 是一个在 git 暂存文件上(也就是被 git add 的文件)运行已配置的 linter(或其他)任务。 lint-staged 总是将所有暂存文件的列表传递给任务。 // package.json "lint-staged": { "src/**/*. "husky": { "hooks": { "pre-commit": "lint-staged" } }, "lint-staged": { "src/**/*. 从 v3.1 开始,您现在可以使用不同的方式进行 lint-staged 配置: lint-staged 在你的对象 package.json .lintstagedrc JSON或YML格式的文件 lint-staged.config.js 安装 mrm 并执行 lint-staged 任务: npm i mrm -D --registry=https://registry.npm.taobao.org npx mrm lint-staged

    3.1K31编辑于 2022-03-28
  • 来自专栏腾讯移动品质中心TMQ的专栏

    静态测试技术之 Lint 冗余资源清理

    Android Lint是针对Android的静态代码分析工具,能够对Android项目中潜在的bug、可优化的代码、安全性、性能、可用性、可访问性、国际化等进行检查。 在Android SDKTools 16及更高的版本中,Lint工具会自动安装。通过对Android工程源代码等进行扫描检查,可发现潜在的问题,更好的提升代码质量。 通过lint进行冗余资源清理主要有以下几种方式: 1、我们可以通过lint –check unUsedResources查找冗余资源列表然后手工或者通过其他删除工具加以清理。 还原:将备份路径下的文件或xml属性资源还原到原路径,并自动添加到lint白名单。 /writing-a-lint-check; [4] https://android.googlesource.com/platform/tools/base/+/master/lint; [5] 微桌面

    2.4K00发布于 2017-04-19
领券