adb获取Android性能数据
环境:Android测试环境
搭建Android测试环境:
1、下载AndroidSDK;
2、配置环境变量;
(1)、ANDROID_HOME
(2)、ANDROID_HOME-TOOLS
(3)、ANDROID_HOME-PALTFORM-TOOLS
3、Android底层Java开发,如需运行安卓远程调试桥(adb),需Java运行环境;
4、下载JAVA;PS:下载JDK和JRE都行,JDK为JAVA开发环境,JRE为JAVA运行环境,开发环境中包含运行环境;
5、配置环境变量JAVA_HOME;
6、验证Java -version;出现版本号即可
PS:Android手机如与windowS电脑连接需安装手机驱动;Mac自动监测安装
移动端性能测试指标:
1、启动时间;(1)、冷启动 (2)、热启动
冷启动:应用的第一次启动,这个时候应用程序的进程是没有创建的
热启动:应用非第一次启动,如果按back键,并没有将应用进程杀掉,热启动没有了初始化的过程
adb命令:adb shell am start -W mainActivity 可以看到ThisTime TotalTime WaitTime
ThisTime表示一连串启动Activity的最后一个Activity的启动耗时;
TotalTime表示新应用启动的耗时,包括新进程的启动和Activity的启动,但不包括前一个应用Activity pause的耗时;
WaitTime就是总的耗时,包括前一个应用Activity pause的时间和新应用启动的时间;
最后总结一下,如果只关心某个应用自身启动耗时,参考TotalTime;如果关心系统启动应用耗时,参考WaitTime;如果关心应用有界面Activity启动耗时,参考ThisTime
PS:am全名activity manager,你能使用am去模拟更重系统的行为
pm全名package manager,你能使用pm命令去模拟Android行为或查询设备上的应用等,当你在adb shell 命令下执行pm命令
2、CPU占用率;
adb命令:adb shell top | grep pid
adb shell top | grep package
adb shell dumpsys cpuinfo | grep pid
adb shell dumpsys cpuinfo | grep package
PS: 最好先adb shell 进入安卓系统,在执行adb shell之后的语句 windows系统dos窗口中grep换成find
3、内存占用率;
adb命令:adb shell dumpsys meminfo | grep pid
adb shell dumpsys meminfo | grep package
PS: 最好先adb shell 进入安卓系统,在执行adb shell之后的语句。 windows系统dos窗口中grep换成find
TOTAL行的数据作为当前app内测占用的衡量数据;
执行出现结果会看到USS、RSS、VSS、PSS
USS指进程对子占用物理内存(不包含共享库占用的内存);
RSS指实际使用的物理内存(包含共享库占用的内存);
VSS指虚拟好用内存;
PSS指实际使用的物理内存;
PS:移动端采用PSS指标
4、耗电量;
adb命令:adb shell dumpsys battery
PS: 最好先adb shell 进入安卓系统,在执行adb shell之后的语句
出现信息解读:
AC powered:false 是否连接AC(电源)充电线
USB powered:true 是否连接USB(PC或笔记本USB插口)充电
Wireless powered:false 是否使用了无线电源
status: 1 电池状态,2为充电状态,其他为非充电状态
level:58 电量(%)
scale: 100. 电量最大数值
voltage: 3977 当前电压(mV)
current now: -335232. 当前电流(mA)
temperature:355 电池温度,单位为0.1摄氏度
technology:Li-poly. 电池种类
5、温度;
cat /etc/thermald.conf
cat 为查看命令
6、每秒帧数(流畅度)[fps];
adb命令:adb shell dumpsys gfxinfo package
PS: 最好先adb shell 进入安卓系统,在执行adb shell之后的语句
正常情况下帧率应该在16ms左右,如果1秒60帧的话,而且Execute时间太长!需要优化
7、GPU占用率;
PS :游戏会测试到,但一般不去测试该指标;
8、网络;
(1)、Wi-Fi[网络友好度]
(2)、蜂窝[耗费资源和友好度]
adb 命令:adb shell dumpsys package | grep userId [通过app包名,获取app的userID(安装后唯一且固定)]
adb shell cat /proc/uid_stat/userId/tcp_rcv [cat为查看命令,读取tcp_rcv获取下载应用流量信息(设备重启后清零)]
adb shell cat /proc/uid_stat/userId/tcp_snd [cat为查看命令,读取tcp_snd获取下载应用流量信息(设备重启后清零)]
9、ANR(页面无响应);
10、Crash(程序崩溃);
PS :ANR和Crash使用Monkey测试
注:dumpsys是Android手机里面的可执行文件
adb获取Android性能数据的更多相关文章
- Android系统下,用adb实现自动获取应用性能数据
[自动化测试模式] 支持以adb shell命令的形式启动和运行.需要注意的是,office系列软件可能会更改命令中的字符,导致命令不可用!请手工输入命令,或从附带的command.txt文本中复制. ...
- adb获取Android系统属性(adb shell getprop ***)数据来源
在Android系统中,它的根文件系统下有几个用于启动系统时需要的配置文件: /init.rc /default.prop /system/build.prop 通常我们可以通过命令getprop获取 ...
- Pyqt adb 获取Android手机屏幕
adb的全称为Android Debug Bridge,就是起到调试桥的作用.adb的工作方式比较特殊,采用监听Socket TCP 5554等端口的方式让IDE和Qemu通讯,默认情况下adb会da ...
- adb 获取Android手机信息命令(2)
#Android命令 #获取手机名称 GET_PHONE_NAME = 'adb shell getprop ro.product.model' #获取手机版本 GET_PHONE_VERSION = ...
- python使用adb获取Android Phone截图(解决Windows传输编码导致png文件损坏的问题)
使用adb命令 ./adb shell screencap -p 可以截取当前屏幕,并且作为stdout,传给外部.那么对于python,我们可以用如下代码获取数据流. 使用Popen创建子进程用于读 ...
- 通过ADB获取Android手机信息
原文:https://blog.csdn.net/fasfaf454/article/details/51438743 1.获取手机系统信息( CPU,厂商名称等)adb shell "ca ...
- adb 获取Android手机信息命令(1)
@set version=1.7.2Normal @echo ============================================================= @echo I ...
- java调用windows的wmi获取设备性能数据
java调用windows的wmi获取监控数据(100%纯java调用windows的wmi获取监控数据) 转:http://my.oschina.net/noahxiao/blog/73163 纯j ...
- 获取linux性能数据
import reimport osimport sysimport jsonimport socketfrom urllib import request,parseimport urllibfro ...
随机推荐
- MySQL(一) -- MySQL学习路线、数据库的基础、关系型数据库、关键字说明、SQL、MySQL数据库、MySQL服务器对象、SQL的基本操作、库操作、表操作、数据操作、中文数据问题、 校对集问题、web乱码问题
1 MySQL学习路线 基础阶段:MySQL数据库的基本操作(增删改查),以及一些高级操作(视图.触发器.函数.存储过程等). 优化阶段:如何提高数据库的效率,如索引,分表等. 部署阶段:如何搭建真实 ...
- 第二次项目冲刺(Beta阶段)--第五天
一.站立式会议照片 二.项目燃尽图 三.项目进展 - 今天任务是改进程序使程序能完成docx文件的读取,但是并没有成功实现解决该问题,所以燃尽图没有前进. -遇到的问题:不支持docx最早认为是jar ...
- 201521123037 《Java程序设计》第8周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结集合与泛型相关内容. 1.2 选做:收集你认为有用的代码片段 1. String[] list1=str.split(" ...
- 201521123073 《Java程序设计》第7周学习总结
1. 本周学习总结 以你喜欢的方式(思维导图或其他)归纳总结集合相关内容. 参考资料: 2. 书面作业 1.ArrayList代码分析 1.1 解释ArrayList的contains源代码 源代码: ...
- 201521123028 《Java程序设计》第6周学习总结
1. 本周学习总结 1.1 面向对象学习暂告一段落,请使用思维导图,以封装.继承.多态为核心概念画一张思维导图,对面向对象思想进行一个总结. 2. 书面作业 Q1.clone方法 1.1 Object ...
- vbs读取excel的一个实例
功能:在excel中对ip与loginType这两列进行遍历读取.本程序依赖于excel文件的"sheet2"表单中具有这两列. dim dictTarget, objExcel ...
- JAVA课程设计--简易计算器(201521123022 黄俊麟)
1.团队课程设计博客链接 http://www.cnblogs.com/I-love-java/p/7058752.html 2.个人负责模板或任务说明 1.初始化业务逻辑. 2.开方.正负.清零.退 ...
- 基于图形检测API(shape detection API)的人脸检测
原文:https://paul.kinlan.me/face-detection/ 在 Google 开发者峰会中,谷歌成员 Miguel Casas-Sanchez 跟我说:"嘿 Paul ...
- HTTP第一篇
为什么要学HTTP? 我们绝大多数的Web应用都是基于HTTP来进行开发的.我们对Web的操作都是通过HTTP协议来进行传输数据的. HTTP的诞生主要是为了能够让文档之间相互关联,形成超文本可以互相 ...
- birt IE8 IE9 兼容问题
我自己的应用,birt展示报表的时候,在firefox和IE下显示的样式: IE8下的: Firefox下的: 我的项目,应用birt部分的结构如下: 1, prototype.js ,查找下面这段代 ...