我们在进行代码优化的时候,往往是通过开发者的经验来判断哪些代码可能存在潜在问题,哪些资源的使用不合规范等。实际上Android SDK提供了一款功能非常强大的工具,来帮助开发者自动检测代码的质量及安全问题,这款工具就叫Android Lint。Lint提供了命令行方式以及与IDE集成的方式来执行,现在Android开发者基本上都使用Android Studio(后文简称AS,下同)来进行开发,强大的AS也集成了该工具,本文就基于AS3.2版本来介绍Lint。
一、Android Lint简介
Android Lint是SDK Tools 16(ADT16,当前笔者使用的ADT已经是26了,所以现在就不用担心自己所使用的SDK中不包含lint工具了)开始引入的一个代码扫描工具,路径为:Sdk\tools\bin\lint.bat。通过它对Android工程源代码进行扫描和检查,可发现潜在的问题,以便程序员及早修正这个问题。通过Lint,无需实际执行应用,也不必编写测试用例,就可以检查Android项目中源文件是否存潜在的错误,以及在正确性、安全性、性能、易用性、无障碍性和国际化方面是否需要优化改进。
二、Lint的工作原理
会使用Lint了,可以简单了解一下它的原理,即工作过程。Android Lint 的工作过程比较简单,一个基础的 Lint 过程由 Lint Tool(检测工具),Source Files(项目源文件) 和 lint.xml(配置文件) 三个部分组成,Lint Tool 读取 Source Files,根据 lint.xml 配置的规则(issue)输出结果(如下图)。
三、Lint在AS中的使用
由于现在Lint是直接集成到AS中的,所以可以直接使用,无需再安装。
1、Lint的启动
Lint在Android Studio中的使用步骤非常简单,有两条途径可以启动Lint:
(1)从主菜单栏中启动
点击主菜单 > Analyze > Inspect Code会弹出检查范围选择对话框
该对话框用于选择要检查的范围,根据实际需要选择即可。其中选择“Custom scope”时可以自定义检查范围,
选择好检查范围后,点击“OK”后,Lint就开始启动了,AS界面的底部会表示正在运行中,稍等一会儿就能看到检查结果了。
(2)通过右键菜单启动
在AS界面文件或编辑界面点击右键,在弹出的菜单中也可以看到“Analyze > Inspect Code”选项,后面就和上面的方法一样了,这里不再赘述。
2、查看检查结果
检查完成后会可以看到如下界面板了:
在这个面板中,“Lint检查结果区”展示的就是通过Lint工具检查出来的结果。当点击这些结果中的问题项时,可以在右边看到该类问题或者具体问题的详情,然后自动完成修改或者根据对问题的描述手动修改。
3、结果面板功能说明
上述结果面板从左到右可以分为三个大区域:工具栏,结果区和问题详情区。
(1)工具栏
工具栏中提供了多个常用的功能,把鼠标移到图标上时会给出相应的提示,这里对部分按钮进行说明:
1)图中①处,Group By Serverity:检查结果按照问题严重程度分组。
2)图中②处,Group By Directory:检查结果按照目录分组。
3)图中③处,Filter resolved items:过滤掉已经解决的问题项。
4)图中④处,Export:导出为HTML或者XML文档。
5)图中⑤处,Edit Settings:编辑设置,通过这里可以对Lint进行设置,后面会详细介绍。
6)图中⑥处,Apply a quickfix:快速修复,点击这里可以直接对所选问题进行快速修复。
(2)检查结果区
由于这里检查代码不仅仅只有Lint在工作,还有很多其它插件也在执行,所以结果中有很多其它工具检查出来的问题,Android > Lint下面的目录就是Lint的结果区了。如果展开Lint的结果,会发现这些问题都是Android所特有的问题,比如布局文件、控件、AndroidManifest文件中的问题,可见Lint就是为Android而量身定做的。默认时这些结果是按照一定的分类来分组的,比如,Correctness、Performance、Security等,这问题类型是否需要检查,也是在设置中设置的,后面会详细介绍。当然通过这个结果区还可以看到Java、Kotlin、Spelling等的问题,也一样解决。
(3)问题详情区