安卓性能测试之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的改变曲线呈大体一致,则系统基本稳定. 若压力增大时,吞吐率的曲线添加到一定程度后出现改变缓 ...
随机推荐
- LeetCode-039-组合总和
组合总和 题目描述:给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合. candidates 中的数 ...
- 震撼的Linux全景图:业界成熟的内核架构长什么样?
1)Linux怎么来的? Linus 为了方便访问大学服务器中的资源 ,在自己的机器上写了一个文件系统和硬盘驱动,这样就可以把自己需要的资源下载到自己的机器中.随后linus把这款操作系统雏形开源,成 ...
- thinkphp 用户登录记录日记
1.设计数据库表名,字段 2,建立模型 <?php namespace app\login\model; use think\Model; class LoginLon extends Mode ...
- 一比一还原axios源码(二)—— 请求响应处理
上一章,我们开发了一些简单的代码,这部分代码最最核心的一个方法就是buildURL,应对了把对象处理成query参数的方方面面.虽然我们现在可以发起简单的请求了,但是第一,我们无法接收到服务器的响应, ...
- async-validator 源码学习(一):文档翻译
async-validator 是一个表单异步校验库,阿里旗下的 Ant-design 和 Element 组件库中的表单验证使用的都是 async-validator ,目前版本已更新到 4.0.7 ...
- pandas常用操作详解——.loc与.iloc函数的使用及区别
loc与iloc功能介绍:数据切片.通过索引来提取数据集中相应的行数据or列数据(可以是多行or多列) 总结: 不同:1. loc函数通过调用index名称的具体值来取数据2. iloc函数通过行序号 ...
- 解决移动端ios网页端收起键盘导致的页面空白问题
一句代码就搞定了,只要失焦的时候把窗口滚动位置设置到(0,0)就行了 <input type="text" onblur="window.scrollTo(0, 0 ...
- 说说如何安装 Openfire
Openfire 是一个基于 XMPP 协议的 IM 服务框架.这里我们来说一说如何安装它. 1 下载 zip 安装包 首先下载 Openfire 安装包,下载路径为:http://www.ignit ...
- 创世区块配置文件genesis.json的格式解读
创世区块配置文件genesis.json的格式解读 中文网站上关于genesis 的解析大多数都来自于这个Gist:Ethereum private network configuration gui ...
- Linux配置FTP(vsftpd)服务和无法上传下载问题解决
vsftpd的配置说明 ftp的配置文件主要有三个,位于/etc/vsftpd/目录下,分别是: ftpusers 该文件用来指定那些用户不能访问ftp服务器. user_list 该文件用来指示的默 ...