环境: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性能数据的更多相关文章

  1. Android系统下,用adb实现自动获取应用性能数据

    [自动化测试模式] 支持以adb shell命令的形式启动和运行.需要注意的是,office系列软件可能会更改命令中的字符,导致命令不可用!请手工输入命令,或从附带的command.txt文本中复制. ...

  2. adb获取Android系统属性(adb shell getprop ***)数据来源

    在Android系统中,它的根文件系统下有几个用于启动系统时需要的配置文件: /init.rc /default.prop /system/build.prop 通常我们可以通过命令getprop获取 ...

  3. Pyqt adb 获取Android手机屏幕

    adb的全称为Android Debug Bridge,就是起到调试桥的作用.adb的工作方式比较特殊,采用监听Socket TCP 5554等端口的方式让IDE和Qemu通讯,默认情况下adb会da ...

  4. adb 获取Android手机信息命令(2)

    #Android命令 #获取手机名称 GET_PHONE_NAME = 'adb shell getprop ro.product.model' #获取手机版本 GET_PHONE_VERSION = ...

  5. python使用adb获取Android Phone截图(解决Windows传输编码导致png文件损坏的问题)

    使用adb命令 ./adb shell screencap -p 可以截取当前屏幕,并且作为stdout,传给外部.那么对于python,我们可以用如下代码获取数据流. 使用Popen创建子进程用于读 ...

  6. 通过ADB获取Android手机信息

    原文:https://blog.csdn.net/fasfaf454/article/details/51438743 1.获取手机系统信息( CPU,厂商名称等)adb shell "ca ...

  7. adb 获取Android手机信息命令(1)

    @set version=1.7.2Normal @echo ============================================================= @echo I ...

  8. java调用windows的wmi获取设备性能数据

    java调用windows的wmi获取监控数据(100%纯java调用windows的wmi获取监控数据) 转:http://my.oschina.net/noahxiao/blog/73163 纯j ...

  9. 获取linux性能数据

    import reimport osimport sysimport jsonimport socketfrom urllib import request,parseimport urllibfro ...

随机推荐

  1. 【Beta】阶段 第五次Daily Scrum Meeting

    每日任务 1.本次会议为第五次 Meeting会议: 2.本次会议在周五下午15:35,在禹洲楼召开,召开本次会议为10分钟. 一.今日站立式会议照片 二.每个人的工作 (有work item 的ID ...

  2. Java课程设计——象棋(201521123042 姚佳希)

    1. 团队课程设计博客链接 Java课程设计(团队版) 2 个人负责模块或任务说明 ChessBoard类创建棋盘及界面. ChessPoint类创建棋盘格点及界面. ChessPiece类创建棋子及 ...

  3. Java课程设计——计算器团队博客

    1.团队名称.团队成员介绍(需要有照片) 1.1团队名称 707 1.2团队成员介绍 谢元将:组长 罗登宇:组员 王华俊:组员 2. 项目git地址 谢元将 罗登宇 王华俊 3. 项目git提交记录截 ...

  4. 201521123026《JAVA程序设计》第14周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多数据库相关内容. 2. 书面作业 1. MySQL数据库基本操作 建立数据库,将自己的姓名.学号作为一条记录插入.(截图,需出现自 ...

  5. 练习使用markdown

    我的随笔 写随笔的原因 1 完全是为了练习使用markdown编辑器 2 我是个爱学习的宝宝 3 学习能力问题? 随笔内容 弄懂markdown语法 随便谢谢心情 个人心情 冷漠 不想说话 神经 个人 ...

  6. org.springframework.core.NestedIOException: ASM ClassReader failed to parse class file - probably du

    如果出现类似下面的错误,原因就是JDK版本太高了,我换成1.7就没事了 Caused by: org.springframework.core.NestedIOException: ASM Class ...

  7. oracle "记录被另一个用户锁定"

    出现的原因是有人对某一条数据进行了修改,oracle会通过这个事务记住这条数据,若修改的人没有进行提交或进行回滚记录,oracle是不允许对这条数据在此进行修改的,在这种情况下你要进行修改数据,则会被 ...

  8. 添加事务后 org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type available

    今天遇到了一个奇怪的问题   在没添加事务之前  所有的代码都是好的 , 当我添加了事务之后, 代码报错 org.springframework.beans.factory.NoSuchBeanDef ...

  9. LCA问题第二弹

    LCA问题第二弹 上次用二分的方法给大家分享了对 LCA 问题的处理,各位应该还能回忆起来上次的方法是由子节点向根节点(自下而上)的处理,平时我们遇到的很多问题都是正向思维处理困难而逆向思维处理比较容 ...

  10. CSS3 animation-timing-function steps()

    animation-timging-function 主要是控制css动画从开始到结束的速度. linear:线性过渡.等同于贝塞尔曲线(0.0, 0.0, 1.0, 1.0) ease:平滑过渡.等 ...