项目规范性检测工具Lint
项目规范性检测工具lint.bat
一、Lint基本概念介绍
Android Lint是SDK Tools 16 (ADT 16)之后才引入的工具,通过它对Android工程源代码进行扫描和检查,可发现潜在的问题,以便程序员及早修正这个问题。Android Lint提供了命令行方式执行,还可与IDE(如Eclipse)集成,并提供了html形式的输出报告。
由于Android Lint在最初设计时就考虑到了independent于IDE,所以它可以很方便的与项目中的其他自动系统(配置/ Build / 测试等)集成。Android Lint主要用于检查以下这些错误:
当然Android Lint远远不只检查以上列出的8中错误,这里不一一给出,想了解更多的小伙伴可以参考相关文档。
在Eclipse中可以在菜单Window->Preference->“Lint Error Checking”中设置规则的检查级别,如图1所示。

点开界面上的Severity下拉箭头,可以看到Lint的检查级别从高到低分别是:
Default
Fatal
Errro
Waring
Information
Ingore(即不检查)
二、Lint命令行使用方法
命令行的操作,自然是先从路径说起了。
Lint的命令名称为lint.bat,完整路径为SDK安装目录下的tools文件夹中,比如我的为:“E:\Android\Android Eclipse\sdk\tools\lint.bat”。为了以后能够快速使用该命令,建议将路径“E:\Android\Android Eclipse\sdk\tools”加入系统环境变量中。
常规的用法格式为:lint.bat Project_Full_Path --xml Project_Result.xml --html Project_Result.html。其中:
Project_Full_Path为项目完整的路径名,也可以先定位到项目上一级目录然后在此写上项目名即可。如先定位于目录“E:\Android\Project”,工程名为LoginUMQQ,那么具体的命令为:lint.bat LoginUMQQ --xml LoginUMQQ_Result.xml --html LoginUMQQ_Result.html。
--xml和--html指定项目检测内容的输出格式,而Project_Result.xml和Project_Result.html为对应的结果输出文件。
一般来说,项目越大,检测过程耗时越长,不过速度是非常快的。下面给出检测命令及结果图:

此时,在指定目录下就可以看到生成的文件了:

这里说明一下,文件夹LoginUMQQ_Result_files中给出了error(红色圆形感叹号)、warning(灰色三角形感叹号)、run(一般不用理会)的图标,还有一个css格式文件。如下图:

通过这三个图标在html文件中浏览检测结果时可以清楚地知道某条信息是对应哪个类别,打开html文件后,有各种信息的分类和数目:

以图中2条未使用的属性为例(UnusedAttribute),直接点击会跳转到对应说明:

可以发现,Lint工具真的非常给力。对于未使用的属性资源,细化到了真实的代码(包括目录、文件名、代码块)。当然,经过测试,检测结果中的其他资源也类似地方便定位与修改。注意图中下半部分给出的解释信息,分析结果还会给出warnings或errors的修改优先级,数字越大,优先级越高,最高为10;最后一段会针对当前的警告信息做一个详细的解释,还包括推荐做法。
虽然,检测结果中的错误并不等同于Eclipse等工具在进行工程编译时的错误(会让程序终止运行),但是根据检测信息对项目进行响应的修改绝对是一个好习惯。这样做的好处有很多,如删除冗余不用的图片、xml等资源文件会让项目变得整洁,减小整体容量;注释(或删除)文件中多余的变量定义可以让文件易读、易维护。
其实,在实际的项目管理中,若像图片这样的整体资源(或整个xml文件)是用不到的,那么可以直接删除,保险起见、也可以在其他地方进行备份。而如果要在某个文件中对部分不用的变量进行剔除,一般采用的专业做法是进行注释,而不是简单粗暴的删除,以防以后需要重新使用这些变量,而且留下痕迹也便于查看谁对该文件做过修改。
项目规范性检测工具Lint的更多相关文章
- eslint 代码检测工具
jshint 检测工具不够灵活下,道格拉斯(何许人也?json创造者,javascript重要任务,犀牛那本书就是他写的). 文档地址: 中文地址 English 安装 利用npm全局安装eslint ...
- Kotlin Android项目静态检查工具的使用
Kotlin Android项目静态检查工具的使用 Kotlin Android项目可用的静态检查工具: Android官方的Lint, 第三方的ktlint和detekt. 静态检查工具 静态检查工 ...
- Python代码规范性检测
一定要注重代码规范,按照平时的代码管理,可以将Python代码规范检测分为两种: 静态本地检测:可以借助静态检查工具,比如:Flake8,Pylint等,调研了一下,用Flake8的相对较多,功能满足 ...
- [转]Android开源项目第二篇——工具库篇
本文为那些不错的Android开源项目第二篇--开发工具库篇,主要介绍常用的开发库,包括依赖注入框架.图片缓存.网络相关.数据库ORM建模.Android公共库.Android 高版本向低版本兼容.多 ...
- Android开源项目第二篇——工具库篇
本文为那些不错的Android开源项目第二篇——开发工具库篇,**主要介绍常用的开发库,包括依赖注入框架.图片缓存.网络相关.数据库ORM建模.Android公共库.Android 高版本向低版本兼容 ...
- [转载]浅谈C/C++内存泄漏及其检测工具
http://dev.yesky.com/147/2356147_3.shtml 对于一个c/c++程序员来说,内存泄漏是一个常见的也是令人头疼的问题.已经有许多技术被研究出来以应对这个问题,比如Sm ...
- Cocos开发中性能优化工具介绍之Visual Studio内存泄漏检测工具——Visual Leak Detector
那么在Windows下有什么好的内存泄漏检测工具呢?微软提供Visual Studio开发工具本身没有什么太好的内存泄漏检测功能,我们可以使用第三方工具Visual Leak Detector(以下简 ...
- VS项目重命名工具
VS项目重命名工具 VS项目整体重命名工具 不再为项目重命名和修改命名空间而烦恼,简单几个字,但是开发加上测试大量项目,前前后后竟然跨越了1个月,汗...不过真正的开发时间可能2-3天的样子. 一. ...
- 实时Bug检测工具Bugsnag发布API更新
原文地址: http://www.uml.org.cn/itnews/2013082609.asp 在应用开发过程中,开发者常常会碰到一个非常头疼的问题,就是应用崩溃.而Bugsnag可以很好地解决这 ...
随机推荐
- 说一下output子句
Output子句日常灰常有用,而且用的地方也挺多,但是确好多时候被我们忽视,今天我就也简单扫盲一下这个语句的用法. Output子句 返回受 INSERT.UPDATE.DELETE 或 MERGE ...
- iOS UIAlertView添加输入框
这玩意有时不用就忘,还是记录一下吧 添加: UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"新建文件夹" mes ...
- Fatal error: Call-time pass-by-reference has been removed
下面的代码报错:Fatal error: Call-time pass-by-reference has been removed function myFunc($arg) { do somethi ...
- dedecms调用标签总结(一)
dedecms 基本包含了一个常规网站需要的一切功能,拥有完善的中文学习资料,很容易上手,学习成本较低.学会dedecms 的模板修改.栏目新增.内容模型新增和常用的标签调用方法后,即便我们不懂 ph ...
- RCC BUCK-BOOST变压器设计
电路处于Buck-Boost DCM模式,最恶劣情况为输入电压最低时.取频率为f 以下图为例: 1.MOS耐压选择: Vmos≥Vinmax+Vout+80 2.保证磁芯不饱和且始终工作在DCM模式 ...
- java使用IO读写文件总结
每次用到IO的读写文件都老忘记写法,都要翻过往笔记,今天总结下,省的以后老忘.java读写文件的IO流分两大类,字节流和字符流,基类分别是字符:Reader和Writer:字节:InputStream ...
- 贪心法 codevs 1052 地鼠游戏
1052 地鼠游戏 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题解 题目描述 Description 王钢是一名学习成绩优异的学生,在平 ...
- CF 676B Pyramid of Glasses[模拟]
B. Pyramid of Glasses time limit per test 1 second memory limit per test 256 megabytes input standar ...
- Hibernate批量处理数据、HQL连接查询
一.批量处理操作 批量处理数据是指在一个事务场景中处理大量数据.在应用程序中难以避免进行批量操作,Hibernate提供了以下方式进行批量处理数据: (1)使用HQL进行批量操作 数据库层面 ...
- 编辑器插件数据保存之Serializable
Editor数据保存需求 做编辑器插件开发时,当打开一个窗口,对数值进行修改后,在关闭窗口或重新打开Unity时,希望能保存上次的数据. 相关知识 Serialization ,ScriptableO ...