这篇文章主要为大家展示了如何通过python调用adb命令对App进行性能测试,内容简而易懂,希望大家可以学习一下,学习完之后肯定会有收获的,下面让小编带大家一起来看看吧。
“只有客户发展了,才有我们的生存与发展!”这是创新互联建站的服务宗旨!把网站当作互联网产品,产品思维更注重全局思维、需求分析和迭代思维,在网站建设中就是为了建设一个不仅审美在线,而且实用性极高的网站。创新互联对做网站、网站制作、网站制作、网站开发、网页设计、网站优化、网络推广、探索永无止境。1 监听启动activity 信息命令adb shell logcat | grep START 可以查看apk包名和Activity名字
=========启动时间============
2 冷启动(第一次启动)热启动(没有退出,第二次打开)命令 adb shell am start -W -n com.qihoo.appstore/.home.MainActivity
3 停止app命令(冷启动) adb shell am force-stop com.qihoo.appstore
(热启动方式退出) adb shell input keyevent 3
python 来实现方式
1定义App类方法有startApp stopApp getStartTime
2 Manager类 方法 testRunTime(执行单次) run 开启执行
==============cpu=================
查看cpu数据
adb shell dumpsys cpuinfo | findstr com.qihoo.appstore
注意 window 下必须把grep 换成 findstr
==================内存=========================
第一种
adb shell dumpsys meminfo com.qihoo.appstore
第二种方式
1 执行adb shell top >f:/meminfo.txt 一段时间后
2 再 解读文件信息
===============流量===================
1获取当前进程的adb shell ps | findstr com.qihoo.appstore
adb shell cat /proc/pid/net/dev
=================电量======================
执行获取电量的命令 adb shell dumpsys battery
设置手机进入非充电状态 adb shell dumpsys battery set status 1
=================帧率===fps===================
adb shell dumpsys gfxinfo com.qihoo.appstore > f:/fps.txt
Draw:表示在Java中创建显示列表部分中,OnDraw()方法占用的时间。
Process:表示渲染引擎执行显示列表所花的时间,view越多,时间就越长
Execute:表示把一帧数据发送到屏幕上排版显示实际花费的时间。其实是实际显示帧数据的后台缓存区与前台缓冲区交换后并将前台缓冲区的内容显示到屏幕上的时间。
Draw + Process + Execute = 完整显示一帧 ,这个时间要小于16ms才能保证每秒60帧。
取得数据后,复制到excel中生成堆积柱状图。
补充知识:python调用adb命令进行手机操作
Python中执行cmd命令可以用到os和subprocess两个模块。
区别在于os是阻塞式的,subprocess是非阻塞式的,所以一般我们使用subprocess是比较适合的。
接下来我先举一个查询连接设备的命令来看看python中怎么样的写法。用到的命令为 adb devices。
方式一:
import os
os.system('adb devices') #获取连接设备
运行结果
List of devices attached
Q8DCGQA6JBQRSAI device
方式二:
import subprocess order='adb devices' #获取连接设备 pi= subprocess.Popen(order,shell=True,stdout=subprocess.PIPE) print(pi.stdout.read()) #打印结果