安卓性能测试之Lint测试

1 lint简介

1.1 概述

lint是随Android SDK自带的一个静态代码分析工具。它用来对Android工程的源文件进行检查,找出在正确性、安全、性能、可使用性、可访问性及国际化等方面可能的bugs和可优化提升的地方。

1.2 lint工作流程

针对我们的项目,通过lint.xml配置lint分析的选项,执行检查后,会针对要分析的issue生成报告。

2 lint使用

有关lint的使用,有以下地方需要理解:

2.1 分析的范围

要对Android项目进行静态分析,首先就是指定要分析的源文件的范围。包括以下方面:

  1. 整个工程或模块。

  2. 目录和文件。

  3. xmljava文件中使用标签和注解来忽略检查。

  4. lint检查结果分warningerror两个等级,可以忽略warning问题。

2.2 检查的方面

lint工具提供了对代码的一系列不同方面的问题进行检查的功能。每一个问题(issue)都有它唯一的id。这些issue是分类的。
可以通过为工程配置lint.xml来指定要分析哪些方面的问题:
每个issue一个标签,可以指定它的严重性(severity)为ignoreerrorwarning等:
下面是一个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>

xmljava文件中,也可以禁用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分析完成后,可以生成xmlhtml格式的文档。文档具体指出了代码在不同方面所发现的问题,每个问题项都指出了在源文件的位置和问题描述。


3. Android Studio中使用

lint提供了命令行接口,所以可以作为单独工具被使用,或者集成到ide的构建流程中去。
Android Studio中,通过菜单或者在Project视图以及代码视图中的右键菜单中选择Analyze > Inspect Code就可以打开lint检查的对话框Specify Inspection Scope,在这里设置好要进行代码分析的范围,确定后工具就开始对代码进行检查了,完成后会自动打开Inspection工具窗口。





 

 

 

 

 

 

 

 

 

 

根据检测的类型分为以下三类:

1. 检测整个工程,以上截图中有 “Whole project” 选项,选中即可。

2. 检测部分模块,比如 “/package/apps/Settings” 模块,首先在Android Studio 左边的目录列表中点击选中这个模块的根目录,然后执行Analyze > Inspect Code打开lint检查的对话框Specify Inspection Scope,界面中就已经显示选中了刚才的“/package/apps/Settings” 模块,点击ok即可。

3. 检测某个文件,一种方法是打开这个文件,然后执行Analyze > Inspect Code打开lint检查的对话框Specify Inspection Scope,界面选中的就是当前打开的文件。另一中就是在目录中选中该文件,然后执行Analyze > Inspect Code打开lint检查的对话框Specify Inspection Scope




下图,左边是分类了的问题,选中一个问题后,右边是针对此问题的详细说明。
Location
指出了发生问题在源文件的位置,Problem synopsis问题概要给出了此问题的解释,可以看到,在MaterialHeader类的源文件的21行,字段mPtrFrameLayout可以被 转换为局部变量使用。(局部变量具有更快的访问速度,而且更精确的变量范围具有更好的维护性)

Android Studio生成lint报告后,可以在Inspection工具窗口中快速定位到代码位置,就像logcat工具窗口那样,在下图右边,Problem resolution标题下有“Convert to local”的连接,点击后可直接将当前问题修复!
Inspection
窗口左边的工具栏,可以Export当前的分析结果为xmlhtml文件。




posted @ 2017-05-09 13:18  浪里小白龙呼呼呼  阅读(702)  评论(0编辑  收藏  举报