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

使用Android Lint检查代码缺陷

背景 Android Lint 是Android自带的代码检查工具,它能帮助我们识别很多潜在的错误。 Lint 介绍 Android Lint 可以扫描android项目源代码中的潜在错误。...下面是它查找的错误类型的一些示例: 缺少转换(和未使用的转换) 布局性能问题(旧布局工具用于查找的所有问题等) 未使用的资源 数组大小不一致(在多个配置中定义数组时) 可访问性和国际化问题(硬编码字符串...在使用 Android Studio 时,配置的 Lint 和 IDE 检查会在您每次构建应用时运行。 ? image.png 在命令行执行 ..../gradlew lint 加入仅仅仅仅检查 buildType=debug ,可以使用: ./gradlew lintDebug 执行完毕后,输入的内容如下: ?.../lint.xml") htmlOutput file("$reportsDir/lint/lint-result.html") xmlOutput file

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

source insigt、pc-lint、VS联合使用

然后,是PC-lint,这个是一个静态检查工具,有的时候我们编程序的时候,虽然编译通过了,且功能实现了,但是还是会存在潜在的风险,而编译器往往会把这些潜在的错误放掉,所以公司要求使用PC-lint进行静态检查...最后就是VC了,这个没什么好说的,编译调试工具而已,因为前面两个工具没有编译调试功能,所以使用VC了,我这里由于电脑安装的是VS,所以下面就总结一下source insight、PC-lint和VS的一起使用吧...(3)在source 中添加并同步source insight工程 二、在source insight中集成PC-lint 编完代码之后就可以编译调试了,都搞定之后,可以使用PC-lint进行静态检查,...以进一步减少潜在的错误,为了方便时候可以在source insight中集成PC-lint命令,并给它设置一个快捷键,这样使用起来就方便了。...这样以后使用ctrl+p就可以直接调用PC-lint进行静态检查了。 如,下面这个提示:表示num1和num2都没有初始化,n定义了但是没有使用。 ?

1.8K90

Custom Lint in Action

Android Lint是Google提供的静态代码检查工具,使用Lint可以对Android项目源码进行扫描和检查,发现代码潜在的问题,或者辅助开发者统一编码规范。...我们还可以通过设置环境变量ANDROID_LINT_JARS来将自定义的lint规则添加到系统全局默认的lint规则集合中,如果你有多个jar可以使用:来将它们连接起来。...下面是一个参考使用方式,虽然我们并没有将自定义的lint规则放在~/.android/lint目录下,但是照样能够应用这些规则。.../gradlew lint命令之外,我们还可以使用AS自带的一个更好的代码检查功能,选择Analyze菜单下面的Inspect Code...选项,然后选择某个目录执行lint检查。 ?...详情参考LinkedIn-自定义Lint规则并封装成aar的方案,它对应的lint demo项目源码包含两部分,一部分是自定义lint规则-CustomLint项目,另一部分是在Android工程中使用

1K10

再谈Android Lint

最开始使用的是JavaScanner,Lint通过Lombok库将Java源码解析成AST(抽象语法树),然后由JavaScanner扫描。...在Android Studio 2.2和lint-api 25.2.0版本中,Lint工具将Lombok AST替换为PSI,同时弃用JavaScanner,推荐使用JavaPsiScanner。...使用JavaPsiScanner实现的自定义Lint规则,可以被加载到Android Studio 2.2+版本中,在编写Android代码时实时执行。...在Android Studio 3.0和lint-api 25.4.0版本中,Lint工具将PSI替换为UAST,同时推荐使用新的UastScanner。...举个例子,我之前在使用埋点的时候我不小心给字符串前面加了个空格,我这个时候就会反思,是不是可以通过静态扫描的方式去搞,但是这个时候api不熟悉怎么办呢?? 谁家代码不是抄呀,哈哈哈。

15810

再谈Android Lint

最开始使用的是JavaScanner,Lint通过Lombok库将Java源码解析成AST(抽象语法树),然后由JavaScanner扫描。...在Android Studio 2.2和lint-api 25.2.0版本中,Lint工具将Lombok AST替换为PSI,同时弃用JavaScanner,推荐使用JavaPsiScanner。...使用JavaPsiScanner实现的自定义Lint规则,可以被加载到Android Studio 2.2+版本中,在编写Android代码时实时执行。...在Android Studio 3.0和lint-api 25.4.0版本中,Lint工具将PSI替换为UAST,同时推荐使用新的UastScanner。...举个例子,我之前在使用埋点的时候我不小心给字符串前面加了个空格,我这个时候就会反思,是不是可以通过静态扫描的方式去搞,但是这个时候api不熟悉怎么办呢?? 谁家代码不是抄呀,哈哈哈。

1.5K40

Android性能优化之TraceView和Lint使用详解

Android lint工具是Android studio中集成的一个代码提示工具,它主要负责对你的代码进行优化提示,包括xml和java文件,很强大。...编写完代码及时进行lint测试,会让我们的代码变得非常规范而且避免代码冗余。让我们及时发现代码中隐藏的问题。...lint使用时非常简单的,我看可以用它实现代码布局的优化,Java代码的优化,不过我觉得根本解决问题还是得依赖于开发者的素质。...第2种方式就是使用android.os.Debug.startMethodTracing();和android.os.Debug.stopMethodTracing();方法,当运行了这段代码的时候,就会有一个...trace文件在/sdcard目录中生成,也可以调用startMethodTracing(String traceName) 设置trace文件的文件名,最后你可以使用adb pull /sdcard/

79360

Lint Tool Analysis (2)

Lint工具的源码分析(2) 本系列的几篇源码分析文档意义不大,如果你正好也在研究lint源码,或者你想知道前面自定义lint规则中提出的那几个问题,抑或你只是想大致了解下lint的源码都有些什么内容的话...info); } return info; } 除了ClassPathInfo之外,还有很多其他的数据也会在LintClient中处理,例如本机的Android SDK的信息以及项目中使用的...given project */ @Nullable public IAndroidTarget getCompileTarget(@NonNull Project project) {//获取项目中使用的...此外,这个类使用了缓存机制来保存已经加载过的jar文件,所以也就导致了我们在自定义lint中出现的更改jar包但是Android Studio并没有更新lint规则的bug!...information (but not for library projects) if (project.isAndroidProject()) { //如果是Android项目的话,使用

2.3K20

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

因为知识不只停留在:“啊,我听说过”;(初级-看一下整个第二大部分) 类型3: 如果经常使用 Google 提供的 Lint,然而没有自定义过 Lint,这篇文章最适合你。...下面列举一些常见的lint会检测的代码问题: 缺少翻译(和未使用的翻译); 布局性能问题(老的 layout opt 工具会用于查找所有这样的问题,和除此之外更多的问题); 未使用的资源; 不一致的数组大小...2 为什么要使用自定义Lint检查 Google 提供的默认 Lint 检查很全面但是我们终归会有很多项目特性、自定义规则无法满足,如开头我提到的几个案例,这时候我们需要自定义 Lint...3 自定义 Lint 入门 & Custom-Lint 核心API 说明:此部分可参见教程:自定义 Lint 规则简介,这里仅罗列大体思路和使用时的备注。 A....所以希望大家尽量使用新版本API。 B.

85720

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检查有关的类...例如,检查某个资源是否使用了,不仅需要检查资源XML文件,还要检查Java文件,只有这两个范围都没有使用这个资源才能确定地认为这个资源没有被使用

1.1K10

Lint Tool Analysis (3)

Lint检查器的前提知识 首先我们需要了解的是,lint工具在实现lint检查时使用了Visitor设计模式,推荐阅读这篇文章看下一般如何来实现这个设计模式。...我们每个lint检查器在使用之前都要进行注册,注册的时候它也指明了它的工作范围以及它感兴趣的文件、方法甚至语句等。...以前使用的是Lombok AST(连Java 7都不支持),现在使用的是PSI(和Intellij内部对Java代码解析使用的是同一套API,但是lint除外,它使用的是ECJ [Eclipse Compiler...所以,开发者将原有的lint检查项基本上全部使用PSI API重写了一遍,下面是重写的提交记录。...这也导致如果项目中使用了旧的API自定义的lint规则的话,lint会对这个文件检查两次,从而使得lint检查的速度变慢。

96610

如何在Vite项目中使用Lint保证代码质量

图片通常,大型前端项目都是多人参与的,由于开发者的编码习惯和喜好都不尽相同,为了降低维护成本,提高代码质量,所以需要专门的工具来进行约束,并且可以配合一些自动化工具进行检查,这种专门的工具称为Lint,...对于实现自动化代码规范检查及修复,可能大家已经听说过ESLint、Prettier、Stylelint和Commitlint 等诸多主流 Lint 工具的概念和使用,而在实际使用过程中,可能还需要配合husky...、lint-staged、VSCode等插件形成完整的Lint工具链。...ESLint的使用并不复杂,主要通过配置文件对各种代码格式的规则(rules)进行配置,以指定具体的代码规范。...同时,目前开源社区也有一些成熟的规范集可供使用,比如Airbnb JavaScript代码规范、Standard JavaScript规范、Google JavaScript规范等,你可以在项目中直接使用这些成熟的规范

40320

android 自定义Lint

概述 Android Lint是Google提供给Android开发者的静态代码检查工具。使用Lint对Android工程代码进行扫描和检查,可以发现代码潜在的问题,提醒程序员及早修正。...为什么要自定义 我们在实际使用Lint中遇到了以下问题: 原生Lint无法满足我们团队特有的需求,例如:编码规范。 原生Lint存在一些检测缺陷或者缺少一些我们认为有必要的检测。...基于上面的考虑,我们开始调研并开发自定义Lint。开发中我们希望开发者使用RoboGuice的Ln替代Log/System.out.println。...注:Lint是如何实现Java扫描分析的呢?Lint使用了Lombok做抽象语法树的分析。所以在我们告诉它需要什么类型后,它就会把相应的Node返回给我们。...jar包使用 将我们自定义的lint.jar完成后,我们接下来就是如何使用jar的问题了。

1.4K100

Android代码分析工具lint学习

2 lint使用 有关lint使用,有以下地方需要理解: 2.1 分析的范围 要对Android项目进行静态分析,首先就是指定要分析的源文件的范围。包括以下方面: 整个工程或模块。 目录和文件。...xml和java文件中使用标签和注解来忽略检查。 lint检查结果分warning和error两个等级,可以忽略warning问题。...在Android Studio中使用 lint提供了命令行接口,所以可以作为单独工具被使用,或者集成到ide的构建流程中去。...小结 使用lint进行代码的检查和分析十分简单高效,在发布版本前,使用lint对工程进行优化,何乐而不为。...文件目录:/sdk/docs/tools/debugging/improving-w-lint.html (本文使用“小书匠”编辑)

1.2K90

使用eslint + prettier + husky + lint-staged 约束项目的最佳实践!

": "eslint --fix ./ --ext .ts --ext .js", 测试 执行npm run lint 随便修改一个文件 再执行npm run lint 可以看到已经报错了~ 配置成功...false, semi: false, singleQuote: true, // 对象的 key 仅在必要时用引号 quoteProps: 'as-needed', // jsx 不使用单引号...,而使用双引号 jsxSingleQuote: false, // 末尾不需要逗号 trailingComma: 'none', // 大括号内的首尾需要空格 bracketSpacing...proseWrap: 'preserve', // 根据显示样式决定 html 要不要折行 htmlWhitespaceSensitivity: 'css', // 换行符使用 lf...)的文件代码格式,而不是去校验所有的文件的格式,就需要使用lint-staged了 lint-staged 安装 "lint-staged": "^12.3.7" 项目根目录新建.lintstagedrc.js

1.5K21
领券