Android App性能测试之二:CPU、流量
CPU---监控值的获取方法、脚本实现和数据分析
1、获取CPU状态数据
adb shell dumpsys cpuinfo | findstr packagename
自动化测试脚本见cpustatus.py
数据分析:做曲线图,可看出随着用户使用,CPU使用率逐渐增高,达到40%多,40%多是否是合理的值呢?
需要取经验值,再测20-30分钟,看CPU使用率是不是恒定的,如果是恒定的,并且这个值又在当前系统支持下的一个合理的范围,那么就是合理的。如果CPU使用率一直上升不下降到80%多,那么这个软件就有问题,应该去找开发人员解决。
流量--监控值的获取方法、脚本实现和数据分析
1、获取当前进程ID 指令
adb shell ps | findstr packagename
2、获取进程ID 流量数据
adb shell cat/proc/id/net/dev
Receive 代表APP接受的数据 Transmit 代表App发出的请求的数据
流量 = Receive + Transmit
lo:代表本地(localhost),不用统计
eth0, eth1:代表有两个网卡,都会有流量的输出,需要统计流量值。
滑动页面,使它有流量消耗,前后流量的差值(两次获取流量数据)就是流量消耗值。
3、代码见traffic.py ,代码有问题,还没解决
电量--监控值的获取方法
获取电量
adb shell dumpsys battery (看level值)
首先保证手机是非充电状态
切换非充电状态
adb shell dumpsys battery set status 1
代码power.py
内存--监控值的获取方法
获取内存
adb shell top
VSS - Virtual Set Size 虚拟耗用内存
RSS - Resident Set Size 实际使用物理内存
数据的采集:
adb shell top -d 1 #数据每一秒刷新一次
把数据重定向到meminfo
adb shell top -d 1 > meminfo
#/usr/bin/python#encoding:utf-8import csvimport osimport time
#控制类class Controller(object): def __init__(self, count): #定义测试的次数 self.counter = count #定义收集数据的数组 self.alldata = [("timestamp", "power")]
#单次测试过程 def testprocess(self): #执行获取电量的命令 result = os.popen("adb shell dumpsys battery") #获取电量的level for line in result: if "level" in line: power = line.split(":")[1]
#获取当前时间 currenttime = self.getCurrentTime() #将获取到的数据存到数组中 self.alldata.append((currenttime, power))
#多次测试过程控制 def run(self): #设置手机进入非充电状态 os.popen("adb shell dumpsys battery set status 1") while self.counter >0: self.testprocess() self.counter = self.counter - 1 #每5秒钟采集一次数据 time.sleep(5)
#获取当前的时间戳 def getCurrentTime(self): currentTime = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) return currentTime
#数据的存储 def SaveDataToCSV(self): csvfile = file('meminfo.csv', 'wb') writer = csv.writer(csvfile) writer.writerows(self.alldata) csvfile.close()
if __name__ == "__main__": controller = Controller(5) controller.run() controller.SaveDataToCSV()
Android App性能测试之二:CPU、流量的更多相关文章
- Android App性能测试之adb命令
本篇文章总结了Android App性能测试过程中常用的adb命令.通过这些adb命令,可以查看App的性能数据,为评判性能好坏作参考. CPU相关 显示占用CPU最大的5个应用 adb shell ...
- Android APP 性能测试之 GT 工具
一.介绍: GT(随身调)是 APP 的随身调测平台,它是直接运行在手机上的"集成调测环境"(IDTE, Integrated Debug Environment).利用 GT,仅 ...
- Android APP 性能优化的一些思考
说到 Android 系统手机,大部分人的印象是用了一段时间就变得有点卡顿,有些程序在运行期间莫名其妙的出现崩溃,打开系统文件夹一看,发现多了很多文件,然后用手机管家 APP 不断地进行清理优化 ,才 ...
- Android app 性能优化的思考--性能卡顿不好的原因在哪?
说到 Android 系统手机,大部分人的印象是用了一段时间就变得有点卡顿,有些程序在运行期间莫名其妙的出现崩溃,打开系统文件夹一看,发现多了很多文件,然后用手机管家 APP 不断地进行清理优化 ,才 ...
- 包建强的培训课程(9):Android App性能优化
v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VM ...
- android app性能优化大汇总
这里根据网络上各位大神已经总结的知识内容做一个大汇总,作为记录,方便后续“温故知新”. 性能指标: (1)使用流畅度: 图片处理器每秒刷新的帧数(FPS),可用来指示页面是否平滑的渲染.高的帧率可以 ...
- Android APP性能分析方法及工具
近期读到<Speed up your app>一文.这是一篇关于Android APP性能分析.优化的文章.在这篇文章中,作者介绍他的APP分析优化规则.使用的工具和方法.我觉得值得大家借 ...
- 十大技巧优化Android App性能
无论锤子还是茄子手机的不断冒出,Android系统的手机市场占有率目前来说还是最大的,因此基于Android开发的App数量也是很庞大的. 那么,如何能开发出更高性能的Android App?相信是软 ...
- 优化Android App性能?十大技巧必知!
无论锤子还是茄子手机的不断冒出,Android系统的手机市场占有率目前来说还是最大的,因此基于Android开发的App数量也是很庞大的.那么,如何能开发出更高性能的Android App?相信是软件 ...
随机推荐
- 数据库【mysql篇】典型的一些练习题目
班级表 class 学生表student 老师表 teacher 课程表course 成绩表 score 准备数据 创建数据库 create database tang_test charset='u ...
- Angular5 路由守卫
今年下半年一直很忙,没有多少时间来写博客,很多笔记都记在了本地一起提交到了git上边. 夏末的时候做的两个vue项目中有接触到vue的路由守卫,今天在另外一个angular上,发现路由守卫有异常,导致 ...
- 前端学习-基础部分-css(一)
开始今日份整理 1.CSS的导入方式 CSS的导入方式主要是有内联模式,行内模式,外部样式表 1.1 内联模式 内联模式:直接在<head>中直接写css,例如 p{ color:rgb( ...
- WiFi广告强推的基本技术原理和一些相关问题
WiFi推原理(转) 本文地址:http://jb.tongxinmao.com/Article/Detail/id/412 WiFi广告强推的基本技术原理和一些相关问题 WiFi广告推送原理就是利用 ...
- Chrome Inspect调试微信出现404,需要FQ
要么FQ,要么买个程序 见连接 http://www.cnblogs.com/slmk/p/7591126.html
- 广师大学习笔记之文本统计(jieba库好玩的词云)
1.jieba库,介绍如下: (1) jieba 库的分词原理是利用一个中文词库,将待分词的内容与分词词库进行比对,通过图结构和动态规划方法找到最大概率的词组:除此之外,jieba 库还提供了增加自定 ...
- 【原创】IDEA一定要改的八条配置
引言 坦白说,我很少写这种操作类型的文章.因为这种文章没啥新意,大家操作步骤肯定是一样的.然而,我答应了我的同事小阳,给她出一篇!毕竟人家打算从Eclipse转IDEA了,于是以示鼓励,写一篇给她! ...
- Mysql数据的增删改查
一 介绍 MySQL数据操作: DML 在MySQL管理软件中,可以通过SQL语句中的DML语言来实现数据的操作,包括 使用INSERT实现数据的插入 UPDATE实现数据的更新 使用DELETE实现 ...
- [Alpha阶段]第二次Scrum Meeting
Scrum Meeting博客目录 [Alpha阶段]第二次Scrum Meeting 基本信息 名称 时间 地点 时长 第二次Scrum Meeting 19/04/04 大运村寝室6楼 90min ...
- 让多个HTML页面 使用 同一段HTML代码
需求背景 一个网站有多个网页:一个网页,可以分为很多部分,举个例子,下面是一个特别简单的网页结构: 一般情况下,footer都是用于标识网站的相关信息(备案.联系方式.制作方),每一个页面都是相 ...