Android代码分析工具lint学习
2016-07-17 23:19
429 查看
1 lint简介
1.1 概述
lint是随Android SDK自带的一个静态代码分析工具。它用来对Android工程的源文件进行检查,找出在正确性、安全、性能、可使用性、可访问性及国际化等方面可能的bugs和可优化提升的地方。1.2 lint工作流程
针对我们的项目,通过lint.xml配置lint分析的选项,执行检查后,会针对要分析的issue生成报告。![](https://images2015.cnblogs.com/blog/408095/201607/408095-20160717231511076-1476853296.png)
2 lint使用
有关lint的使用,有以下地方需要理解:2.1 分析的范围
要对Android项目进行静态分析,首先就是指定要分析的源文件的范围。包括以下方面:整个工程或模块。
目录和文件。
xml和java文件中使用标签和注解来忽略检查。
lint检查结果分warning和error两个等级,可以忽略warning问题。
2.2 检查的方面
lint工具提供了对代码的一系列不同方面的问题进行检查的功能。每一个问题(issue)都有它唯一的id。这些issue是分类的。可以通过为工程配置lint.xml来指定要分析哪些方面的问题:
每个issue一个标签,可以指定它的严重性(severity)为ignore、error、warning等:
下面是一个lint.xml的示例:
<?xml version="1.0" encoding="UTF-8"?> <lint> <!-- Disable the given check in this project --> <issue id="IconMissingDensityFolder" severity="ignore" /> <!-- Ignore the ObsoleteLayoutParam issue in the specified files --> <issue id="ObsoleteLayoutParam"> <ignore path="res/layout/activation.xml" /> <ignore path="res/layout-xlarge/activation.xml" /> </issue> <!-- Ignore the UselessLeaf issue in the specified file --> <issue id="UselessLeaf"> <ignore path="res/layout/main.xml" /> </issue> <!-- Change the severity of hardcoded strings to "error" --> <issue id="HardcodedText" severity="error" /> </lint>
在xml和java文件中,也可以禁用lint检查:
To disable lint checking for a specific Java class or method, use the @SuppressLint annotation.
To disable lint checking for specific sections of your XML file, use the tools:ignore attribute.
2.3 生成报告
lint分析完成后,可以生成xml、html格式的文档。文档具体指出了代码在不同方面所发现的问题,每个问题项都指出了在源文件的位置和问题描述。3. 在Android Studio中使用
lint提供了命令行接口,所以可以作为单独工具被使用,或者集成到ide的构建流程中去。在Android Studio中,通过菜单或者在Project视图以及代码视图中的右键菜单中选择Analyze > Inspect Code就可以打开lint检查的对话框Specify Inspection Scope,在这里设置好要进行代码分析的范围,确定后工具就开始对代码进行检查了,完成后会自动打开Inspection工具窗口。
下图,左边是分类了的问题,选中一个问题后,右边是针对此问题的详细说明。
Location指出了发生问题在源文件的位置,Problem synopsis问题概要给出了此问题的解释,可以看到,在MaterialHeader类的源文件的21行,字段mPtrFrameLayout可以被转换为局部变量使用。(局部变量具有更快的访问速度,而且更精确的变量范围具有更好的维护性)
在Android Studio生成lint报告后,可以在Inspection工具窗口中快速定位到代码位置,就像logcat工具窗口那样,在下图右边,Problem resolution标题下有“Convert to local”的连接,点击后可直接将当前问题修复!
Inspection窗口左边的工具栏,可以Export当前的分析结果为xml或html文件。
![](https://images2015.cnblogs.com/blog/408095/201607/408095-20160717231715061-1668839080.png)
小结
使用lint进行代码的检查和分析十分简单高效,在发布版本前,使用lint对工程进行优化,何乐而不为。参考
sdk文档路径:Develop > Tools > Workflow > Debugging > Improving Your Code with lint.
文件目录:/sdk/docs/tools/debugging/improving-w-lint.html
(本文使用“小书匠”编辑)
相关文章推荐
- IntelliJ IDEA和Android Studio上使用Git
- 自定义View(二)(Android群英传)
- 【AR】增强现实安卓编程 - Vuforia SDK 的安装和使用 (Android Studio)
- Android Broadcast广播注册和发布方式以及机制流程
- 第一课 android环境搭建
- Intent隐式激活
- AndroidSutdio如何导入SlidingMenu(侧拉菜单)
- Activity常见的生命周期分析
- 简单的android音乐播放器
- Android自定义View——实现屏幕触摸校验效果
- RecyclerView的使用
- Android获取SHA1签名
- Android:Layout_weight的深刻理解
- relativelayout实现梅花布局
- 如何在Android Studio中导SlidingMenu框架到项目中
- android 回调机制
- android手势识别
- android 打造不同的Seekbar
- android 打造不同的Seekbar
- android 打造不同的Seekbar