Android app客户端性能测试工具Emmagee 浅析
简介
Emmagee是网易杭州研究院qa团队开发的一款用于监控安卓客户端性能的小工具,可以监控指定被测应用在使用过程中器的启动时间、CPU、内存、流量和电量变化情况,用户可自定义配置监控的频率以及性能的实时显示,并最终生成一份性能统计csv文件,支持Android2.2及以上版本。
主要功能
1、检测当前时间被测应用的CPU使用率以及总体CPU使用量。
2、检测当前时间被测应用占用的内存量、百分比,剩余内存量。
3、检测应用从启动开始到当前时间消耗的流量数。
4、测试数据写入到CSV文件中,存储在手机/storage/sdcard0目录下,同时支持以邮件形式发送文件。
5、可以选择开启浮窗功能,浮窗中实时显示被测应用占用性能数据信息。
6、在浮窗中可以快速启动或者关闭手机的wifi网络。
使用方法
1、安装Emmagee应用。
apk本地下载:Emmagee_2.4.apk,外网下载:http://code.google.com/p/emmagee/downloads/list
2、启动Emmagee,列表中会默认加载手机安装的所有应用。
3、选择需要测试的应用,点击“开始测试”,被测应用会被启动。
4、开始测试,测试过程中会自动记录相关性能参数。
5、测试完成后回到Emmagee界面,点击“结束测试”,测试结果会保存在手机指定目录(一般为“/storage/sdcard”下)的CSV文件中。文件名称类似“Emmagee_TestResult_20180326150532.csv”
生成的CSV文件内容见图:
6、使用Excel打开CSV文件,绘制统计图。
实现原理
1、监控CPU的实现原理
Android系统是基于Linux内核的,所以系统文件的结构和Linux下一样,系统总体CPU使用信息放在/proc/stat文件下,/proc/cpuinfo文件存放CPU的其它信息,包括CPU名称,直接读取即可。Emmagee是将选中应用的PID传入,读取/proc/PID/stat文件信息及可获取该PID对应程序的CPU信息。
2、监控内存的实现原理
内存和cpu的处理方式类似。先获取到当被测应用的PID,然后按照PID从 /proc/meminfo文件中获取当前被测应用占用的内存信息。
3、监控流量消耗的实现原理
系统中有存放整体流量和针对当程序的流量统计,/proc/net/dev和/proc/uid_stat/UID下存放tcp_rcv和tcp_send文件,分别存放下行流量和上行流量,操作前后相减就得出结果 。
4、监控电量的实现原理
电量、电压和温度情况是通过监听系统的电池管理事件的广播来获取的。
电流是通过读取系统文件的方式获取。不同品牌的机型,保存实时电流的文件路径和名称略有差异。
5、监控启动时间的实现原理
我们点击界面的开始测试时,程序会启动EmmageeService,之后所有的数据统计以及更新都是EmmageeService进行处理的。 EmmageeService会在onStartCommand()里面启动一个线程“handler.postDelayed(task, 1000)”,进行数据的更新同时会尝试通过ActivityManger从logcat中获取到软件的启动时间。
6、监控fps的实现原理
红色框框内的东西就是通过调用一个管理Android帧缓冲区的系统服务SurfaceFlinger来获取用于计算fps的帧数据,具体可参考: Android fps的计算方式
注意事项
1.Emmagee在默认加载软件列表的时候实际上过滤掉了系统程序,只显示第三方的应用程序。这样会导致可能我们需要测试的系统程序在列表里找不到。
红色框框里面排除的东西,第一个是系统程序,第二个是Emmagee自己(PACKAGE_NAME= "com.netease.qa.emmagee")。
所以如果需要测试系统程序时,记得要注释掉这行代码再重新编译apk。
2.启动时间的计算主要是读取系统日志(“"logcat -v time -d ActivityManager:I *:S"”),因此只有应用程序有读取系统日志的权限时才会去获取启动时间和写入启动时间数据到csv文件。
源码获取
项目对外开源,源码地址: https://github.com/NetEase/Emmagee 有兴趣的同学可以下载捣腾、二次开发......
向开源精神致敬!
Android app客户端性能测试工具Emmagee 浅析相关推荐
- android性能测试自动化,Android App自动化性能测试探究
作者:彭海波 前言 Android App的性能测试是移动测试过程中必不可少的一个环节.在我们项目组内,性能测试的过程是这样的,先设置测试场景,然后一边手工执行场景,一边通过工具获取性能数据,为了减少 ...
- 如何评估移动GPU性能:以及4个需要了解的Android GPU 本地性能测试工具
众所周知,Android终端基本都配有GPU:无论手机还是VR,AR设备,GPU在其中扮演了越来越重要的地位. 当我们拿到一款GPU时,我们最关心的就是性能了. 不服跑个分.跑分是目前最常见的测试性能 ...
- APP性能测试工具Emmagee的使用总结
1,Emmagee是网易杭州研究院QA团队开发的一个简单易上手的Android性能监测小工具,主要用于监控单个App的CPU,内存,流量,启动耗时,电量,电流等性能状态的变化,且用户可自定义配置监控的 ...
- Android APP性能分析工具大全
目录 官方推荐工具 第三方工具 一,官方工具 1.1,TraceView 1.2,StrictMode 1.3,Systrace 1.4,Hierarchy Viewer 1.5,AndroidStu ...
- [雪峰磁针石博客]2018最佳12个开源或免费web服务器和客户端性能测试工具
更多参考 软件测试专家工具包2性能测试 服务器端性能 image.png Locust.io – 了解服务器端性能的好工具. 语言python3.源码 python3+ python2.7+ gith ...
- App常用性能测试工具清单
APP的CPU,内存,耗电,流量测试工具 APP的CPU,内存,耗电,流量测试工具下载地址,后续文章会介绍如何使用 Emmagee.itest.gt APP应用的CPU,内存,耗电,流量调查(可和同类 ...
- 手机APP软件性能测试工具及流程介绍
性能测试(上) 性能测试的分类和流程 什么是性能测试? 性能测试概念: 性能测试主要通过自动化的测试工具模拟多种正常.峰值以及异常负载条件来对系统的各项性能指标进行测试 性能测试工具: Jmeter ...
- android安全性测试工具,Android app安全性能测试
1.安装包测试 (1)能否反编译代码(源代码泄露问题): 开发:对代码进行混淆:测试:使用反编译工具进行查看源代码,是否进行代码混淆,是否包括了显而易见的敏感信息 (2)安装包是否签名(ios重app ...
- Android app反编译工具
参考: APK反编译之APKTOOL的使用 使用android-apktool来逆向(反编译)APK包方法介绍 我是如何使用Android反编译软件的? apktool(链接是谷歌官方的) 谷歌官方提 ...
- Android APP性能监测工具
Emmagee:网易开发的性能检测工具 能够对应用的常用性能指标(内存.CPU占比.电量.流量)进行检测,并以csv的格式保存方便查看应用的各项指标,使用Excel打开CSV文件,使用自带的统计图标功 ...
最新文章
- vlan网络下的设置
- 分享 - Social.framework
- 洛谷P2312 解方程题解
- 时间自适应卷积:比自注意力更快的特征提取器
- 【Android】 Android中适配器简介
- tcp 服务端如何判断客户端断开连接
- Mac入门--Apache/Php/Mysql的开启关闭
- Pairwork2 总结
- .NET 原理之 ViewState
- html演示 用鼠标画记号,html怎么用鼠标画出一条直线,鼠标移动时候要能看到线条...
- 把代码写成艺术,真正体会面向对象编程思想
- 聚类(3)-- Gaussian Mixtures Model
- C#中判断字符是否为中文
- Vue.use 写多个_西双版纳能写立项报告收费公司
- cam350 不能打开光绘文件_用CAM350导出GERBER文件的基本步骤
- 1097: 计算平均成绩(函数专题)
- GAMIT处理GLONASS数据
- Openwrt:icmpv6_send: no reply to icmp error
- Android 10.0强制所有app横屏显示
- debian 7 网络安装后无法联接wifi