安卓性能测试之Lint测试
pre { direction: ltr; color: rgba(0, 0, 10, 1); text-align: left }
pre.western { font-family: "Liberation Serif", serif; font-size: 12pt }
pre.cjk { font-family: "Droid Sans Fallback"; font-size: 12pt }
pre.ctl { font-family: "Droid Sans Fallback"; font-size: 12pt }
h2 { margin-top: 0.42cm; direction: ltr; color: rgba(0, 0, 10, 1); text-align: left }
h2.western { font-family: "Liberation Sans", sans-serif; font-size: 14pt; font-weight: normal }
h2.cjk { font-size: 14pt; font-weight: normal }
h2.ctl { font-size: 14pt; font-weight: normal }
h1 { margin-bottom: 0.21cm; direction: ltr; color: rgba(0, 0, 10, 1); text-align: left }
h1.western { font-family: "Liberation Sans", sans-serif; font-size: 14pt; font-weight: normal }
h1.cjk { font-family: "Droid Sans Fallback"; font-size: 14pt; font-weight: normal }
h1.ctl { font-family: "Droid Sans Fallback"; font-size: 14pt; font-weight: normal }
p { margin-bottom: 0.25cm; direction: ltr; color: rgba(0, 0, 10, 1); line-height: 120%; text-align: left }
p.western { font-family: "Liberation Serif", serif; font-size: 12pt }
p.cjk { font-family: "Droid Sans Fallback"; font-size: 12pt }
p.ctl { font-family: "Droid Sans Fallback"; font-size: 12pt }
code.ctl { font-family: "Liberation Mono", monospace }
1 lint简介
1.1 概述
lint是随Android SDK自带的一个静态代码分析工具。它用来对Android工程的源文件进行检查,找出在正确性、安全、性能、可使用性、可访问性及国际化等方面可能的bugs和可优化提升的地方。
1.2 lint工作流程
针对我们的项目,通过lint.xml配置lint分析的选项,执行检查后,会针对要分析的issue生成报告。
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工具窗口。
根据检测的类型分为以下三类:
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当前的分析结果为xml或html文件。
安卓性能测试之Lint测试的更多相关文章
- 【腾讯优测干货分享】安卓专项测试之GPU测试探索
本文来自于Dev Club 开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/57c7ffdc0569a1191bce8a63 作者:章未哲——腾讯SNG质 ...
- 安卓app测试之Monkey测试
一.Monkey特点 1.运行时机:一般是产品稳定后 首轮功能测试完成的夜间进行 2.需要知道packageName 3.目的:主要测试产品是否存在崩溃问题和ANR问题. 二.获取包名的两个方法 首先 ...
- 性能测试之LoardRunner 测试场景监控关注的几点
1.系统业务处理能力,即通常我们在进行性能测试的时候,在特定的硬件和软件环境下考察的业务处理能力,即“事物”,需要关注当前.平时.峰值以及长远未来业务发展情况,考虑不同业务的处理数量,从而设定相应的业 ...
- 安卓性能测试之 adb shell 常用命令
pm list packages 列出包名adb shell pm list packages:列出所有的包名.adb shell dumpsys package:列出所有的安装应用的信息adb sh ...
- Shell脚本 | 性能测试之启动流量
安卓应用的流量统计有多种方式,点击「阅读原文」可以看到一篇别人写的文章,关于安卓流量数据的获取,写的挺全的,列举了几种不同方式的优劣.(见文末参考链接) 今天我要分享的是通过脚本一键获取应用的启动流量 ...
- 性能测试之Windows常见性能计数器
性能计数器(counter)是描述服务器或操作系统性能的一些数据指标.计数器在性能测试中发挥着“监控和分析”的关键作用,尤其是在分析系统的可扩展性.进行性能瓶颈的定位时,对计数器的取值的分析非常关键. ...
- [转载]软件测试之Web测试经典总结
转载自:软件测试之Web测试经典总结 基于Web的系统测试在基于Web的系统开发中,如果缺乏严格的过程,我们在开发.发布.实施和维护Web的过程中,可能就会碰到一些严重的问题,失败的可能性很大.而且, ...
- 性能测试培训:Ajax接口级性能测试之jmeter版
性能测试培训:Ajax接口级性能测试之jmeter版 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.在poptest认为工具 ...
- 老李分享知识:性能测试之TPS和吞吐率
老李分享知识:性能测试之TPS和吞吐率 当增大系统的压力(或添加并发用户数)时,吞吐率和TPS的改变曲线呈大体一致,则系统基本稳定. 若压力增大时,吞吐率的曲线添加到一定程度后出现改变缓 ...
随机推荐
- JZ-055-链表中环的入口结点
链表中环的入口结点 题目描述 给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null. 题目链接: 链表中环的入口结点 代码 import java.util.ArrayList; ...
- 网易互娱23届实习笔试_3x3锯齿数独
一.输入: 输入一个3x3数独,字符'.'代表空输入三个宫的域,每个宫包括三个位置,[0,0]表示0行0列 二.输出要求: 1.每个宫里最终123各出现一次, 2.数独中的行列里不出现重复字符: 输出 ...
- 关于dotnet动态生成controller的问题
一些动态生成controller的问题 前言 最近在写包, 一开始封装了仓储Repository用于操作数据库, 然后为了快速开发一些业务简单的接口, 通过QueryController , Modi ...
- 10 分钟讲完 QUIC 协议。
建议阅读本文需要搭配作者 HTTP 相关文章食用. 历史 HTTP 系列文章: 看完这篇HTTP,跟面试官扯皮就没问题了 HTTP 2.0 ,有点炸 ! 这里先来回顾一下 HTTP 的发展过程.首先, ...
- 萌新看过来,你还学不懂VScode插件吗?
一.前言 VSCode是微软家一个非常轻量化的编辑器,体量虽轻,但是却有异常强大的功能.原因在于VSCode许多强大功能都是基于插件实现的,IDE只提供一个最基本的框架和基本功能,我们需要使用插件来丰 ...
- kubernetes资源使用glusterfs卷进行数据持久化
1.GlusterFS部署 安装GlusterFS集群的主要目的是为k8s集群提供分布式持久化存储. GlusterFS部署使用2台服务器,服务名称与IP如下: 1 db-storagea 10.1. ...
- springboot 踩坑之路之 Configuration Annotation Proessor not found in classpath
1.出现spring boot Configuration Annotation Proessor not found in classpath的提示是在用了@ConfigurationPropert ...
- 6月21日 Django ORM那些相关操作(表关联、聚合查询和分组查询)
一.ForeignKey操作 正向查找 对象查找(跨表) 语法: 对象.关联字段.字段 示例: book_obj = models.Book.objects.first() # 第一本书对象 pr ...
- 论文解读(VGAE)《Variational Graph Auto-Encoders》
Paper Information Title:Variational Graph Auto-EncodersAuthors:Thomas Kipf, M. WellingSoures:2016, A ...
- 内网渗透----Windows下信息收集
一.基础信息收集 使用systeminfo命令查看操作系统版本.架构.补丁情况 Windows-Exploit-Suggester-master -u 参数升级并将数据库下载至本地: -i 参数指定系 ...