一. Android Lint Checks 简介
作为一个 Android Developer,难免会面临这样的困扰:随着产品需求的反复更改和App版本的不停迭代,Android 项目工程中出现了越来越多的警告性代码(Warnings),四处遍布着无用的Java类和图片等资源(Unused),Manifest.xml 文件中会不会定义了一些兼容性以及安全性的标签呢(Security),打包发布的Apk文件体积越来越大,潜在性的异常问题越来越多!
其实,你缺少的只是一款代码检查工具,譬如 Lint。Android Lint Checks,在 SDK Tools 16(ADT 16)才引入的一款静态代码分析工具,能够对 Android 源代码进行扫描和检查,并发现可优化的代码和潜在性的异常,从而方便开发人员尽早地予以处理。
二. Android Lint Checks 作用
Lint 工具能够解决工程中存在的很多问题,具体可以参考官方介绍(需翻墙访问):Android Lint Checks,如图所示:
而在实际使用过程中,我们通常会使用 Lint 工具帮助解决如下一些主要问题:
Layout performance problems
布局性能问题。比如布局内容和层级嵌套过多;Unused resources
未使用到的资源。冗余资源让Apk文件体积更大,编译更慢;Inconsistent array sizes
不一致的数组大小。一个数组经过转化配置形成多个数组后,当某一个数组发生add或者remove操作导致该数组大小发生变化时,我们很容易忘记修改其他数组的大小,导致发生未知的错误;Accessibility and Internationalization problems
访问权限和国际化问题。诸如硬编码的字符串,缺失的 contentDescription 等;Icon Problems
图标问题。比如重复的图标,错误的大小;Usability problems
可用性问题。如在文本输入框中没有指定输入类型;Manifest errors
AndroidManifest.xml 文件错误。
三. Eclipse插件集成使用
Android Lint 是一个命令行工具,提供了命令执行方式,同时也集中在如 Eclipse 、Android Studio 等集中开发环境(IDE)中,提供插件执行方式,也可以选择将分析结果以html等形式输入到文件中。自动分析,使用简单,这里以 Eclipse 为例,介绍一下 Android Lint 工具的使用。
在 Eclipse 中使用 Lint 工具有两种方式,选择工具栏中的对勾标识或者直接右键工程名称 --> Android Tools --> Run Lint: Check for Common Errors 。
运行之后,经过一段短暂时间的自动化分析之后,一份完整的分析结果便呈现于 Lint Warnings 视图中。通过点击标签,也可以实现排序功能,方便集中处理。
如图所示,分析结果中包含了工程中的潜在性错误和一些常见警告,也给出了问题的描述、类型和位置。双击单项描述,可以快速定位至问题的出处。
同时,在工程结构目录中,也会以红叉和感叹号的形式将这些错误和警告显示出来,而这些,在开发时的编译过程中不会显现。
根据这些提示信息,我们就可以逐一修改和优化工程的源代码了。
关于 Android Studio 插件和 命令行的使用,以及更多 Android Lint 的信息,可参考官方介绍(需翻墙访问):
http://developer.android.com/tools/help/lint.html
四. 注意事项
对于 Android Lint 检查出的未使用的资源,需要逐一分析有选择性的删除。比如对于图片资源,Android Lint 只能检测到在这些图片是否在其他资源文件(如 xml 布局文件)中有没有引用到,并不能检查 Java 代码或第三方库中是否引用,所以,如果你使用批量脚本代码等工具不经任何分析的删除,很容易造成误删,导致程序编译报错。建议配合 Ctrl + H
快捷键进行全局检索确认无误后,再行删除。