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?相信是软件 ...
随机推荐
- Failed to start /etc/rc.d/rc.local Compatibility
查看/var/log/message Jun :: root systemd: Started Network Manager. Jun :: root systemd: Starting LSB: ...
- 如何判断app的页面是原生的还是H5的webview页面
1.看布局边界(在手机侧观察) 开发者选项->显示布局边界,页面元素很多的情况下布局是一整块的是h5的,布局密密麻麻的是原生控件.页面有布局的是原生的,否则为h5页面.(仅针对安卓手机试用)如下 ...
- SpringBoot标准Properties
# =================================================================== # COMMON SPRING BOOT PROPERTIE ...
- plsql连接数据库出现乱码
在windows中创 建一个名为"NLS_LANG"的系统环境变量,设置其值为"SIMPLIFIED CHINESE_CHINA.ZHS16GBK", sele ...
- FAST MONTE CARLO ALGORITHMS FOR MATRICES II (快速的矩阵分解策略)
目录 问题 算法 LINEARTIMESVD 算法 CONSTANTTIMESVD 算法 理论 算法1的理论 算法2 的理论 代码 Drineas P, Kannan R, Mahoney M W, ...
- MySQL单向加密函数
select encode('pual','zhangxueliang'); select md5('zhangxueliang'); 加密为null,不显示字段值: select ENCRYPT(& ...
- java多线程中 volatile与synchronized的区别-阿里面试
volatile 与 synchronized 的比较(阿里面试官问的问题) ①volatile轻量级,只能修饰变量.synchronized重量级,还可修饰方法 ②volatile只能保证数据的可见 ...
- Visualize Code with Visual Studio
In this post, App Dev Manager Ed Tovsen spotlight the features and benefits of Code Maps in Visual S ...
- C++/CLI泛型应用
2019年01月16日, QQ群友不知道要折腾什么, 提出了以下问题: 样例代码中的是C#语言写的, 翻译成C++/CLI就不会了, 于是我试着谢了一下, 发现可以实现, 于是就贴出来与大家分享, 源 ...
- SD第九届省赛B题 Bullet
Bullet Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Discuss Problem Description In G ...