项目规范性检测工具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可以很好地解决这 ...
随机推荐
- 【hadoop】——压缩工具比较
文件压缩主要有两个好处,一是减少了存储文件所占空间,另一个就是为数据传输提速.在hadoop大数据的背景下,这两点尤为重要,那么我现在就先来了解下hadoop中的文件压缩. hadoop里支持很多种压 ...
- 基于RMI服务传输大文件的完整解决方案
基于RMI服务传输大文件,分为上传和下载两种操作,需要注意的技术点主要有三方面,第一,RMI服务中传输的数据必须是可序列化的.第二,在传输大文件的过程中应该有进度提醒机制,对于大文件传输来说,这点很重 ...
- 烂泥:更换ESXI5.0管理网卡及管理IP地址
本文由秀依林枫提供友情赞助,首发于烂泥行天下. 公司的服务器基本上都是在IDC机房里面的,为了更有效的利用服务器性能.所以有几台服务器,安装的是ESXI5.0做成虚拟化. 注意目前这些服务器都是双网卡 ...
- android Bitmap类方法属性 详细说明
(转:http://blog.csdn.net/ymangu666/article/details/37729109) 1. BitMap类public void recycle()——回收位图占用 ...
- emacs 新手笔记(四) —— 使用 dired 完成一些简单的文件和目录操作
ilocker:关注 Android 安全(新入行,0基础) QQ: 2597294287 据说熟悉了 dired,就可以在 emacs 下轻松管理文件和目录了,甚至不再需要 shell 和桌面操作. ...
- SmartPointer Smar指针
#include<iostream> using namespace std; // private class for use by HasPtr only class U_Ptr { ...
- Java实现点击一个Jlabel增加一个Jlabel的小功能
当界面生成以后,自己想做一个点击一个Jlabel增加一个Jlabel,即类似于QQ的添加好友以后可以及时的加进一个好友.自己做了好久,发现不能及时刷新.在网上查了一下,然后自己研究了一小会.发现需要v ...
- Codeforces 460D Little Victor and Set --分类讨论+构造
题意:从区间[L,R]中选取不多于k个数,使这些数异或和尽量小,输出最小异或和以及选取的那些数. 解法:分类讨论. 设选取k个数. 1. k=4的时候如果区间长度>=4且L是偶数,那么可以构造四 ...
- C#复习(学生信息输入)
在控制台程序中使用结构体.集合,完成下列要求项目要求:一.连续输入5个学生的信息,每个学生都有以下4个内容:1.序号 - 根据输入的顺序自动生成,不需要手动填写,如输入第一个学生的序号是1,第二个是2 ...
- stl学习(二)集合 set 的使用
set集合容器底层由红黑树实现,是平衡二叉搜索树. 相对stl中的list.deque效率更高. 注意:由于集合 的 性质,单纯的 set 不允许重复的元素 初始化 / 清空 函数 : clear() ...