Android Studio它作为Google官方推荐的IDE,功能非常强大,其中提供了一套静态代码分析工具(代码扫描工具),它可以帮助我们检查项目中存在的问题,让我们更有规范性的开发App。它可以检查出:xml文件中是否存在hardcode硬编码、spelling拼写问题、unused resources没有使用到的资源、probable bug可能的bug等等。([ɪnˈspekʃn] 检查、检测)然后会给出修改的建议供我们参考,虽然这些问题并不会影响App的正常运行,不过这对于项目的规范性和维护性来说是非常重要的。

作为移动应用开发者,我们总希望发布的apk文件越小越好,不希望(资源文件)没有用到的图片资源也被打包进apk, 在应用发布前保证程序质量

硬编码: 直接在TextView中写字体大小和要显示的文字。

[sɪ'verətɪ]:问题严重等级

我们可以通过更改对应的severity等级来更改提示的等级,默认hardcode的severity等级为warning,我们修改hardcode的severity等级为error,那么在存在硬编码时候将会以error等级提醒我们。如何修改呢?(把警告级别提高到错误级别)

硬编码问题仅仅是黄色警告级别。  很多问题的严重级别都是此;如何自定义android lint的检测条件?

在TextView中直接使用dp为单位,用的不是sp。 也是警告级别。修改完成后,就可以看到提示使用红色的波浪线标记。Android Lint中还有很多可以自己去设置的,有兴趣的可以去试试,当然这个只是起提示建议作用,并不会影响程序的正常运行。提升这个地方的等级不会对代码和其他静态分析工具如lint产生影响,也不会对运行产生影响,它的作用域仅仅是IDE展示

使用Android Studio的lint清除无用的资源文件

Analyze菜单下:点击菜单栏的Analyze -> Run Inspection by Name, 输入unused resource。

这项操作,一般用于检查资源目录res文件夹。

android 使用lint + studio ,排查客户端无用资源,string,drawable,layout等

我们还可以设置很多其他的IDE静态代码检查,通过改变其severity达到更直观提示的作用,可以让开发者有一个直观的认识,哪些代码是合法但是不规范的。lint工具简单实用,自动化分析,分析完成会给我们分析报告.分析包括中会包括错误和警告会给出具体的描述、类别、位置。

lint是Android提供的一个静态代码检查的工具,我们可以在gradle的构建task中加入link检查。具体的使用请移步到goole文档。link能够检查的东西很多,参考 所有check issue。

lint工具可以通过一个xml文件来配置,它可以用来修改某些check issue是否忽略(典型的例子是第三方库里面存在问题),同时可以修改某些issue的默认等级。

HardcodedText的默认等级是警告,我们升级成error,并在配置文件中增加

lintOptions {

lintConfig file("lint.xml")

abortOnError true},这样在我们构建项目的时候如果发生错误,将直接中断构建。

需要注意的是,点击AS上面的绿色的运行按钮是不会触发lint检查的,如果你想每次点击运行都进行lint检查,可以如下设置:edit configuration选项卡中进行配置。

Android Lint可以检查出的错误包括:

1.Missing translations (and unused translations) 没有翻译的文本

2. Layout performance problems (all the issues the old layoutopt tool used to find, and more) 布局性能

3. Unused resources未使用的冗余资源

4. Inconsistent array sizes (when arrays are defined in multiple configurations)在多个配置中的数组大小不一致文件

5. Accessibility and internationalization problems (hardcoded strings, missing contentDescription, etc)

6. Icon problems (like missing densities, duplicate icons, wrong sizes, etc)

7. Usability problems (like not specifying an input type on a text field)

8. Manifest errors.

缺少翻译(和未使用的翻译)

布局性能问题(老的layoutopt工具会用于查找所有这样的问题,和除此之外更多的问题,可以解决无用布局、嵌套太多、布局太多)

未使用的资源

不一致的数组大小(当在多个配置中定义数组)

可访问性和国际化问题(硬编码字符串,缺少contentDescription等)

图标问题 (如丢失密度、 重复图标、 错误尺寸等)

可用性问题 (如不在文本字段上指定输入的类型)

清单错误

双击错误信息可以看到错误的详情介绍和在代码中的位置。(这里的错误往往不是异常或error,而是你代码中可以进一步优化的部分

代码没有问题后,就可以将程序run起来,进行下一步的内存和CPU监测了。

Android Lint提供了命令行方式执行,还可与IDE(如Eclipse)集成,并提供了html形式的输出报告。在Android SDK安装目录的tools目录下(比如D:\SDK\android-sdk_r13\tools)执行下列指令即可得到。

配置 lint 文件

你可以指定lint检查的选项在lint.xml 文件。创建lint.xml文件放在Android工程的根目录下。

Findbugs可以检查出来空指针异常的

Android Lint 代码检查工具的使用相关推荐

  1. 美团外卖Android Lint代码检查实践

    概述 Lint是Google提供的Android静态代码检查工具,可以扫描并发现代码中潜在的问题,提醒开发人员及早修正,提高代码质量.除了Android原生提供的几百个Lint规则,还可以开发自定义L ...

  2. Android Lint代码检查实践

    1. 为啥用Lint 平时开发中我们在提mr的时候都会进行review,但有些问题通过人眼去看很难发现,比如Fragment必须有空参构造函数,因为在内存不足的时候Fragment恢复默认是通过反射调 ...

  3. 谷歌java安卓代码检查工具,Android Studio 代码检查工具介绍

    前言 利用好相关代码检查工具,是一种自我的CodeReview,可以有效降低Bug率,提升自我的代码优化意识.常用的代码检查工具有AndroidStudio 自带的Lint工具. Alibaba Ja ...

  4. Android Studio 工具:Lint 代码扫描工具(含自定义lint)

    什么是 Lint Android Lint 是 SDK Tools 16(ADT 16)开始引入的一个代码扫描工具,通过对代码进行静态分析,可以帮助开发者发现代码质量问题和提出一些改进建议.除了检查 ...

  5. Android 代码检查工具SonarQube

    代码检查工具能帮我们检查一些隐藏的bug,代码检查工具中sonar是比较好的一个.官网 Sonar 概述 Sonar 是一个用于代码质量管理的开放平台.通过插件机制,Sonar 可以集成不同的测试工具 ...

  6. Android 静态代码检查

    文章目录 背景 项目当前代码质量问题例子 重复类问题 Java 代码问题 Kotlin 代码问题 预期收益 技术方案 技术调研 技术实施 总体流程 技术细节 CPD 重复代码检查 PMD Java 代 ...

  7. c/c++ 静态代码检查工具

    文章目录 道理呢大家都懂,但是需要时间消化,而且人还是易犯错误的动物 lint gcc 12 sonarqube 道理呢大家都懂,但是需要时间消化,而且人还是易犯错误的动物 所以才有了,这些个静态代码 ...

  8. linux静态代码检查工具,linux下splint检测C语言代码质量

    在linux下并没有pclint,可以使用splint代替.splint使用一.splint介绍splint是一个静态检查C语言程序安全弱点和编写错误的工具.splint会进行多种常规检查,包括未使 ...

  9. eslint代码检查工具

    what?什么是eslint? Eslint是一个 ECMAScript/JavaScript代码检查工具,使用node.js编写.可以使用eslint默认规则,也可以创建自己的检测规则. why?为 ...

  10. JavaScript代码检查工具——JSLintMate

    JSLintMate是一款快速.简洁.易于使用JSLint(Douglas Crockford强大的JS代码检查工具)或者JSHint来检查JavaScript代码的扩展工具. JSLintMate是 ...

最新文章

  1. linux sleep alarm,Linux环境编程之信号处理(三、利用alarm()和pause()函数实现sleep()函数)...
  2. iOS进阶之底层原理-block本质、block的签名、__block、如何避免循环引用
  3. Linux C编程--网络编程1--字节顺序和字节处理函数
  4. Navicat工具、pymysql模块
  5. HDU-4536 XCOM Enemy Unknown 枚举
  6. linux共享软件_为什么 linux 要用 tar.gz,很少用 7z 或 zip?
  7. mysql 季度最后一天,MYSQL中取目前年份的第一天和当前周,月,季度的第一天/最后一天...
  8. 雷军说小米综合净利润率永远不超过5%,玺哥相信他是真心的!
  9. 深度学习:卷积神经网络之移动网络(MobileNet)
  10. Android腾讯云直播开发,笔记:腾讯云直播SDK测试demo
  11. UG NX二次开发(C++)-环境设置-内部模式(插件)制作设置
  12. 创建个人网站(一) 如何申请一个网站
  13. echarts 3D 柱状图
  14. python 方波信号_python实现周期方波信号频谱图
  15. Cosy V3.1.3 简洁大气WordPress博客主题自适应个人自媒体网站模板(含积木部分插件)
  16. 户外蓝牙小音箱值得买
  17. 关于EasyRecovery工具数据恢复的原理
  18. JavaScript红皮书学习笔记
  19. 1-5分钟上手自动化测试——Airtest+Poco快速上手
  20. linux树莓派扩容,树莓派OpenWrt扩容磁盘分区大小

热门文章

  1. 5gwifi信道哪个最好,wifi信道在哪里设置如何检测哪个路由器信道最快
  2. 电脑用来测试网段信号的软件,WiFi信号分析仪PC版
  3. word2007修复工具_使用Word 2007作为博客工具
  4. Gradle全版本资源下载
  5. php的ci框架手册,CodeIgniter 教程 - php CodeIgniter 框架 - CodeIgniter手册
  6. 最新阿里巴巴Java开发手册发布和下载
  7. vscode安装 Fira Code 编程字体,编程符号更精致美观
  8. TABLEAU教程2
  9. Kindle Paperwhite2(第6代)5.7.2.1固件升级教程
  10. MySQL数据库学习路径 链接汇总