Androidclient性能參数监控
背景:
在做androidclient測试的时候。有时候须要监控cpu/mem/电量消耗/界面载入时间/流量等等指标。
于是俺们就上下求索,网友告诉我两个方案:AnotherMonitor和Emmagee,在此之前。我自己写了一个工具,下文就这几个方案做一下比較和说明。
AnotherMonitor和Emmagee都是apk的形式存在的。以下是官网:
https://code.google.com/p/anothermonitor/
https://github.com/NetEase/Emmagee
看看介绍:
AnotherMonitor is an application for Android which monitors and records thememory and CPU usage values of the mobile phone. Thus, the program is intendedfor anyone whom would be interested in knowing the mobile resources state.
001.png
Emmagee功能介绍:
1、检測当前时间被測应用占用的CPU使用率以及整体CPU使用量
2、检測当前时间被測应用占用的内存量,以及占用的整体内存百分比,剩余内存量
3、检測应用从启动開始到当前时间消耗的流量数
4、測试数据写入到CSV文件里。同一时候存储在手机中
5、能够选择开启浮窗功能,浮窗中实时显示被測应用占用性能数据信息
6、在浮窗中能够高速启动或者关闭手机的wifi网络
002.png
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvVGVzdGluZ2Jh/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
两个工具的功能比較相似,后者多一个流量的监控,长处是仅仅须要安装到安卓手机上就能够使用,缺点是程序本身对手机资源也是有影响的,监控的内容还不够丰富。
我自己写了一个工具,进行资源參数的搜集,主要依赖手机自带的命令行。
主要使用了命令:getprop 和dumpsys
文件清单:
l getdatav1.bat
l getdatav2.bat
l android日志分析.xls
l 无线ADB连接android手机和电脑.docx
说明:
第一个版本号是usb线连接pc和手机。当时手机root后安装了busybox,所以各类命令都齐全。于是getdatav1.sh中你会发现都是linux命令;
第二个版本号:因为大多数手机都不会安装busybox,没有什么awk。sed一类的命令,所以就getdatav1.sh改动为getdatav2.sh,曾经的awk、sed等命令都不再使用。改用dos批处理进行文本处理。
执行程序的过程是先执行 getdata.sh。文件里有具体使用说明。生成一大堆的採集回来的数据文件,然后打开excel文件,点击生成,将之前批处理採集的数据文件载入到一个excel文件里,并生成图表。
在測试的过程中发现usb线连接pc,会导致手机一直在充电,所以又搞了个无线方案,保证电量消耗的准确。
也许能够配套monkeyrunner跑上几个小时。将crash的次数和log都一起生成到报告里面。这样更有实际意义。有空再做吧。
下载链接:
http://download.csdn.net/detail/testingba/7716309
Androidclient性能參数监控的更多相关文章
- Hadoop作业性能指标及參数调优实例 (三)Hadoop作业性能參数调优方法
作者: Shu, Alison Hadoop作业性能调优的两种场景: 一.用户观察到作业性能差,主动寻求帮助. (一)eBayEagle作业性能分析器 1. Hadoop作业性能异常指标 2. Had ...
- ubuntu nginx安装及相关linux性能參数优化
一.安装 下载源代码,解压:tar -xzvf nginx-1.4.7.tar.gz ./configure make && make install 改动默认nginx的监听port ...
- Ngnix中的fastcgi參数性能优化和解释
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/luozhonghua2014/article/details/37737823 优化性能參数设置,在 ...
- 一个性能较好的jvm參数配置以及jvm的简单介绍
一个性能较好的webserverjvm參数配置: -server //服务器模式 -Xmx2g //JVM最大同意分配的堆内存,按需分配 -Xms2g //JVM初始分配的堆内存.一般和Xmx配置成一 ...
- Spark 性能相关參数配置具体解释-任务调度篇
作者:刘旭晖 Raymond 转载请注明出处 Email:colorant at 163.com BLOG:http://blog.csdn.net/colorant/ 随着Spark的逐渐成熟完好, ...
- Hadoop作业性能指标及參数调优实例 (二)Hadoop作业性能调优7个建议
作者:Shu, Alison Hadoop作业性能调优的两种场景: 一.用户观察到作业性能差,主动寻求帮助. (一)eBayEagle作业性能分析器 1. Hadoop作业性能异常指标 2. Hado ...
- linux下改动内核參数进行Tcp性能调优 -- 高并发
前言: Tcp/ip协议对网络编程的重要性,进行过网络开发的人员都知道,我们所编写的网络程序除了硬件,结构等限制,通过改动Tcp/ip内核參数也能得到非常大的性能提升, 以下就列举一些Tcp/ip内核 ...
- Spark 性能相关參数配置具体解释-shuffle篇
作者:刘旭晖 Raymond 转载请注明出处 Email:colorant at 163.com BLOG:http://blog.csdn.net/colorant/ 随着Spark的逐渐成熟完好, ...
- 在resin配置參数实现JConsole远程监控JVM
在Resin配置參数实现JConsole远程监控JVM 在Resin中配置中配置下列參数,就能够是实现了! <jvm-arg>-Dcom.sun.management.jmxremote& ...
随机推荐
- [APIO2007]风铃 --- 贪心
[APIO2007]风铃 题目描述 你准备给弟弟 Ike 买一件礼物,但是,Ike 挑选礼物的方式很特别:他只喜欢那些能被他排成有序形状的东西. 你准备给 Ike 买一个风铃.风铃是一种多层的装饰品, ...
- 一文了解JVM全部垃圾回收器,从Serial到ZGC
<对象搜索算法与回收算法>介绍了垃圾回收的基础算法,相当于垃圾回收的方法论.接下来就详细看看垃圾回收的具体实现. 上文提到过现代的商用虚拟机的都是采用分代收集的,不同的区域用不同的收集器. ...
- bzoj1798 维护序列
Description 老师交给小可可一个维护数列的任务,现在小可可希望你来帮他完成. 有长为N的数列,不妨设为a1,a2,…,aN .有如下三种操作形式: (1)把数列中的一段数全部乘一个值; (2 ...
- JAVA对数字证书的常用操作(转载)
一:需要包含的包 import java.security. * ; import java.io. * ; import java.util. * ; import java.security. * ...
- [转]安卓虚拟机启动后报错: 类似 SDK Manager] Error: Error parsing .devices.xml 解决方案
昨天用android sdk manager 更新了android sdk, 我是在myeclipse上面安装adt来开发android的现在每次打开myeclipse都报错, 而且我每次打开虚拟机的 ...
- hdu 5232 Shaking hands 水题
Shaking hands Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pi ...
- Redis-用思维导图二天搞定Redis用法。
Redis整体面貌 Redis基本数据结构 1.String 1.1 数据结构 long len byte数组长度 long free 可用数组长度 char buff[] 数据内容 1.2 命令 键 ...
- 浅谈JVM-类加载器结构与双亲委派机制
一.类加载器结构 1.引导类加载器(bootstrap class loader) 它用来加载Java的核心库(JAVA_HOME/jre/lib/rt.jar),是用原声代码来实现的,并不继承自ja ...
- Eclipse:The superclass javax.servlet.http.HttpServlet was not found on the Java Build Path
我们在用Eclipse进行Java web开发时,可能会出现这样的错误:The superclass javax.servlet.http.HttpServlet was not found on t ...
- JavaScript面向对象编程指南(第2版)》读书笔记
一.对象 1.1 获取属性值的方式 water = { down: false } console.log(water.down) // false console.log(water['down'] ...