一、简介


 Android SDK自带了工具Lint,通过它可以对Android工程源码进行静态代码分析,发现潜在的缺陷和优化改进项。


     Lint就能解决我们的这些问题。Android lint是在ADT 16提供的新工具,它是一个代码扫描工具,能够帮助我们识别代码结构存在的问题,主要包括:


1)布局性能(以前是 layoutopt工具,可以解决无用布局、嵌套太多、布局太多)

2)未使用到资源

3)不一致的数组大小

4)国际化问题(硬编码)

5)图标的问题(重复的图标,错误的大小)

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

7)manifest文件的错误



二、基本使用方式



Android Lint提供了命令行执行和IDE集成(如eclipse)两种使用方式。





1、命令行



lint [flags] <project directory>



lint --help查看,这里只介绍比较常用的命令:





a)生成html格式的报告



--html d:\lint-results.html  d:\lofter_project



另外,也可以使用参数,生成格式简单的html报告



--simplehtml d:\lint-results.html  d:\lofter_project






b)生成xml格式的报告



--xml d:\lint-results.xml d:\lofter_project





c)使用自定义的分析策略



--config d:\custom-lint.xml --html d:\lint-results.html  d:\lofter_project



如果项目源码根目录下存在lint.xml文件,则无需--config参数,lint.xml中的策略默认生效。





d)参数--fullpath



 --fullpath --simplehtml d:\lint-results.html  d:\lofter_project



下图展示了是否使用该参数的区别






2、eclipse集成插件


Lint是ADT插件的附属功能,安装ADT后即可使用,不需要额外安装。



a)插件提供的功能




b)分析结果显示窗口


分析结果中包括错误和警告,每条结果会给出问题的概述、类别、位置。点击某个条目时,右侧会出现详细介绍。




c)设置


在eclipse的preference中可以对lint进行配置,比如“保存文件时执行lint”、


需要特别注意,这里的配置是全局的,而修改项目中lint.xml文件只对项目有效,所以有时通过lint.xml配置更具有灵活性。




三、高级进阶


1、自定义分析策略(编辑lint.xml)


下图展示了lint的工作原理,其中lint.xml配置哪些规则需要检查、哪些规则可以忽略。配置方法见文末的扩展阅读。





2、jenkins插件


https://wiki.jenkins-ci.org/display/JENKINS/Android+Lint+Plugin


Android Lint Plugin可以解析lint生成的xml结果文件,并生成趋势图、详细条目、dashboard展示空间等,如下图:



需要注意该插件仅用于解析lint的xml report,在此之前你需要自行调用命令行生成结果文件。



扩展阅读:


【lint】  http://developer.android.com/intl/zh-cn/tools/help/lint.html


【Improving Your Code with lint】  http://developer.android.com/intl/zh-cn/tools/debugging/improving-w-lint.html



参考:

http://tools.android.com/tips/lint

http://tools.android.com/tips/lint-checks

http://developer.android.com/tools/help/lint.html

http://developer.android.com/tools/debugging/improving-w-lint.html