环境: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. JavaScript 的使用基础总结②DOM

    HTML DOM 通过 HTML DOM,可访问 JavaScript HTML 文档的所有元素. 当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model). HT ...

  2. 团队作业4——第一次项目冲刺(Alpha版本)3rd day

    一.Daily Scrum Meeting照片 二.燃尽图 三.项目进展 1.界面 界面已初步完成并能够进行简单的界面关联 界面内的功能正在完善 2.登陆方面 QQ授权已申请,等待通过 申请通过后在登 ...

  3. Git与码云(Git@OSC)入门-如何在实验室和宿舍同步你的代码(2)

    4. 处理冲突 4.1 向远程仓库push时无法提交成功,提示在push前应该先pull 如图所示: 有可能是因为远程仓库的版本与本地仓库的版本不一致,所以应先git pull将远程仓库的内容合并到本 ...

  4. 201521123071 《JAVA程序设计》第九周学习总结

    第九周-异常 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常相关内容. 此处仅部分知识点归纳 2. 书面作业 1. 常用异常,题目5-1 1.1 截图你的提交结果(出现学号) ...

  5. 201521123019 《Java程序设计》第11周学习总结

    1. 本章学习总结 2. 书面作业 Q1.互斥访问与同步访问 完成题集4-4(互斥访问)与4-5(同步访问) 1.1除了使用synchronized修饰方法实现互斥同步访问,还有什么办法实现互斥同步访 ...

  6. Java课程设计 学生基本信息管理系统 团队博客

    学生基本信息管理系统团队博客 项目git地址 https://git.oschina.net/Java_goddess/kechengsheji 项目git提交记录截图 项目功能架构图与主要功能流程图 ...

  7. 201521123014 《Java程序设计》第10周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常与多线程相关内容. 1.关于异常上次作业已经概括得差不多了,创建自己的异常时可以使用Java类库中已经定义好的类,也可自定义异常 ...

  8. apache: apache-tomcat-6.0.35完整下载

    Index of /dist/tomcat/tomcat-6/v6.0.35/bin Name Last modified Size Description Parent Directory - ex ...

  9. SparkStreming之updateStateByKey

    正文 上一篇简单的写了一个socketTextStream的demo,这个问题就是每一次不能将之前和之后的数据进行合并统一.接下来我们通过demo进行把着这个问题解决. val conf = new ...

  10. grep与正则表达式基础

    目录 grep 正则表达式 grep用法简介 我们介绍GREP的用法,主要用于匹配行,我们借助下面的正则表达式来介绍如何使用grep,还有就是正则表达式在linux中是极为重要的一部分. 命令:gre ...