首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android代码分析工具lint学习

1 lint简介 1.1 概述 lint是随Android SDK自带的一个静态代码分析工具。...lint检查结果分warning和error两个等级,可以忽略warning问题。 2.2 检查的方面 lint工具提供了对代码的一系列不同方面的问题进行检查的功能。...在Android Studio中使用 lint提供了命令行接口,所以可以作为单独工具被使用,或者集成到ide的构建流程中去。...Scope,在这里设置好要进行代码分析的范围,确定后工具就开始对代码进行检查了,完成后会自动打开Inspection工具窗口。...(局部变量具有更快的访问速度,而且更精确的变量范围具有更好的维护性) 在Android Studio生成lint报告后,可以在Inspection工具窗口中快速定位到代码位置,就像logcat工具窗口那样

1.3K90

Custom Lint in Action

Android Lint是Google提供的静态代码检查工具,使用Lint可以对Android项目源码进行扫描和检查,发现代码潜在的问题,或者辅助开发者统一编码规范。...1.lint工具的源码在哪里,都有些什么内容呢?...Lint工具以及现有的检查项的源码在android studio源码(aosp的一部分)的tools/base/lint目录下,其中cli子目录是用来生成lint报告结果的,libs目录下才是核心源码,...但是目前该项目最新的release 1.0.1版本依赖的是25.2.0版本的lint-api,演示的LogDetector参考自lint工具自带的LogDetector。...还有,将lint.jar打包到aar中为什么也可以实现自定义lint检查呢?这些问题需要我们去阅读lint工具的源码才能够真正解开谜底,欢迎阅读Lint工具源码解析(1)。

1K10
您找到你想要的搜索结果了吗?
是的
没有找到

利用 Lint 工具链来保证代码风格和质量

但仅有规范本身不够,我们需要自动化的工具(即Lint 工具)来保证规范的落地,把代码规范检查(包括自动修复)这件事情交给机器完成,开发者只需要专注应用逻辑本身。...本节,我们将一起来完成 Lint 工具链在项目中的落地,实现自动化代码规范检查及修复的能力。...学完本节内容后,你不仅能熟悉诸如ESLint、Prettier、Stylelint和Commitlint 等诸多主流 Lint 工具的概念和使用,还能配合husky、lint-staged、VSCode...现在,Eslint 已经成为一个非常成功的开源项目了,基本上属于前端项目中 Lint 工具的标配。...样式规范工具: Stylelint接下来我们进入Stylelint的部分,先来看看官方的定义:Stylelint,一个强大的现代化样式 Lint 工具,用来帮助你避免语法错误和统一代码风格。

37810

再谈Android Lint

先把上一篇自定义lint的文章链接放在开头 自定义lintDemo项目 存粹个人看法哦,静态扫描我觉得是一个在开发过程中就去避免掉一部分bug的重要的工具。...我之前写的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。...有思路就可以抄代码,我去找到了SetTextDetector,然后我就根据其中的代码,完成了这个静态扫描工具的开发。

1.6K40

再谈Android Lint

先把上一篇自定义lint的文章链接放在开头 自定义lintDemo项目 存粹个人看法哦,静态扫描我觉得是一个在开发过程中就去避免掉一部分bug的重要的工具。...我之前写的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。...有思路就可以抄代码,我去找到了SetTextDetector,然后我就根据其中的代码,完成了这个静态扫描工具的开发。

19910

Lint Tool Analysis (2)

Lint工具的源码分析(2) 本系列的几篇源码分析文档意义不大,如果你正好也在研究lint源码,或者你想知道前面自定义lint规则中提出的那几个问题,抑或你只是想大致了解下lint的源码都有些什么内容的话...当我们在终端输入lint命令的时候,lint脚本会自动帮我们设置com.android.tools.lint.bindir的值,这个我们后面分析lint脚本源码的时候可以看到。...从下面的代码片段中我们终于可以知道为什么放在~/.android/lint目录下的自定义lint规则的jar包能够被识别,指定ANDROID_LINT_JARS环境变量也能够识别,或者将lint.jar...解析文件时出错了;LINT_ERROR表示lint检查过程中出现错误,但不是用户代码的错误;CANCELLED表示用户取消了lint检查。...工具是如何查找自定义的lint规则,但是并没有看到这些规则是如何注册到IssueRegistry上去的,而这个艰巨的任务实际上是在LintDriver中完成的,主要流程都在方法registerCustomDetectors

2.4K20

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

Android Lint 是一个静态代码分析工具,它能够对你的 Android 项目中潜在的 bug 、可优化的代码、安全性、性能、可用性、可访问性、国际化等进行检查。...可用性 Accessibility 可访问性 Internationalization 国际化 静态代码分析工具常被用来检测代码中的质量问题或者编码规范问题。...Lint 作为最早的静态代码分析工具,已被用来作为静态代码分析工具的代名词。因此,Android SDK 也把其静态代码分析工具取名为 Android Lint。...下面列举一些常见的lint会检测的代码问题: 缺少翻译(和未使用的翻译); 布局性能问题(老的 layout opt 工具会用于查找所有这样的问题,和除此之外更多的问题); 未使用的资源; 不一致的数组大小...Gradle配置包 compile 'com.android.tools.lint:lint-api:25.2.0' compile 'com.android.tools.lint:lint-checks

88620

Lint Tool Analysis (1)

Lint工具的源码分析(1) 本系列的几篇源码分析文档意义不大,如果你正好也在研究lint源码,或者你想知道前面自定义lint规则中提出的那几个问题,抑或你只是想大致了解下lint的源码都有些什么内容的话...在前面的Custom Lint in Action中我们了解到将自定义的lint规则打包成jar,然后放在~/.android/lint/目录下的话,我们就能够应用这些规则对工程进行静态代码扫描了。...要揭晓这些问题的答案,我们就必须要去阅读lint工具的源码一探究竟啦! Lint检查归根结底是对某些文件可能存在的某些问题利用静态扫描源文件的方式去检查看是否真的存在那些问题的过程。...工具的源码就是这么设计和封装的。...lint工具源码主要分成两部分:lint-api和lint-checks,前者主要是lint的核心API,后者是利用API定义的检查器。

1.1K10

Lint Tool Analysis (3)

Lint工具的源码分析(3) 本系列的几篇源码分析文档意义不大,如果你正好也在研究lint源码,或者你想知道前面自定义lint规则中提出的那几个问题,抑或你只是想大致了解下lint的源码都有些什么内容的话...前面我们提了很多lint工具中detector.api和client.api包下的类,但是还没介绍到lint检查器到底是如何对文件进行检查的,这也就是本节需要介绍的知识点。 3....Lint检查器的前提知识 首先我们需要了解的是,lint工具在实现lint检查时使用了Visitor设计模式,推荐阅读这篇文章看下一般如何来实现这个设计模式。...最后,关于lint工具的实现还有不少有意思的槽点,下面的几段英文内容摘录自google code上关于lint工具的一个讨论,其中lint开发者解释了他们在实现Java文件解析时的技术方案选型原因、目前存在的问题以及将来的开发方向...下一节我们会总结下lint工具中自带的一些和Android有关的检查器的功能。

1K10

一文了解Lint

### lint背景 lint 是源代码静态分析工具的统称。它通过分析源代码本身的错误、不规范之处,在不运行代码的情况下检测出潜在问题。 lint 工具主要有以下作用: 1....### 理念 lint的理念和目的是使用静态分析提高代码质量与健壮性。 到这应该明白作为程序员我们都应该学习并运用适合自己语言和项目的 lint 工具。...[2] 遵循相应的代码规范有以下好处 - 较少 bug 错误率 - 高效的开发效率 - 更高的可读性 ### 主流lint工具 1....SonarLint:支持多种语言的lint工具,可以检查代码中的质量问题,如安全漏洞、代码重复、代码规范等。...Checkstyle:heckstyle 是最流行的 Java lint 工具,用于检查 Java 代码规范和风格。它可以定制化检查。

42310

android 自定义Lint

概述 Android Lint是Google提供给Android开发者的静态代码检查工具。使用Lint对Android工程代码进行扫描和检查,可以发现代码潜在的问题,提醒程序员及早修正。...为什么要自定义 我们在实际使用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

1.5K100

使用Android Lint检查代码缺陷

背景 Android Lint 是Android自带的代码检查工具,它能帮助我们识别很多潜在的错误。 Lint 介绍 Android Lint 可以扫描android项目源代码中的潜在错误。...它既可以作为命令行工具,也可以与Eclipse(如下所述)和Intellij(详细信息)集成。体系结构是有意独立于IDE的,因此它有望与其他IDE、其他构建工具以及持续集成系统集成。...下面是它查找的错误类型的一些示例: 缺少转换(和未使用的转换) 布局性能问题(旧布局工具用于查找的所有问题等) 未使用的资源 数组大小不一致(在多个配置中定义数组时) 可访问性和国际化问题(硬编码字符串...Lint 工具可检查您的 Android 项目源文件是否包含潜在错误,以及在正确性、安全性、性能、易用性、便利性和国际化方面是否需要优化改进。...我们可以将 Lint 工具集成到我们CI过程中去,构成研发体系的一部分。

1.2K00

Android自定义lint开发

我自己写的静态扫描的demo 简介 Android Lint 是 SDK Tools 16(ADT 16)开始引入的一个代码扫描工具,通过对代码进行静态分析,可以帮助开发者发现代码质量问题和提出一些改进建议...最近在项目开发过程中发现如果要推进一些中间件的对接工作,不给业务方提供一些对应的工具的情况下,很难推动代码更新迭代的过程。...所以我打算通过lint静态代码检查工具,将业务端内出现了我们想改进的地方的代码标错,然后根据错误提示,帮助他们修改以及升级业务代码。...lint配置 对于执行 Lint 操作的相关配置,是定义在 gradle 文件的 lintOptions 中,可定义的选项及其默认值 android { lintOptions {...:lint-api:26.4.2' compileOnly 'com.android.tools.lint:lint-checks:26.4.2' } sourceCompatibility

90140

【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

1K30
领券