一个让你开挂的Android 性能测试方法

Android性能测试,跟pc性能测试同样分为客户端及服务器,但在客户端上的性能测试分为2类,对于应用性能测试,包括不少测试项,如启动时间、内存、CPU、GPU、功耗、流量等。但针对rom版本的性能测试,通常关注功耗。html

1、不一样版本的性能测试

一、rom版本的性能测试

rom版本通常就关注功耗测试,不过rom版本的功耗测试跟应用的功耗测试会有所差别,固然只是用例设计方面的差别,工具仍然采用安捷伦电源仪进行。linux

二、应用的性能测试

应用的性能测试,对于启动时间、内存、CPU测试你们通常都使用外部提供的第三方工具来辅助测试,如GT、安测试等、这些工具的原理都是基于调用Android底层的一些api来获取到测试所用到的值,固然咱们也能够采用其余方法,如使用Android自己提供的一套adb便可完成上述测试。算法

对于GPU、功耗、等测试来讲,用第三方工具测试获得的数值通常都不是很准确,这个时候咱们须要引入硬件来进行测试了,GPU能够采用高速相机来进行测试,功耗可使用万用表或安捷伦电源仪来进行测试(ps:有硬件动手能力的能够DIY一个小板进行)。shell

三、Android的性能测试

该本份内容为今天主要详述的内容,具体分析见下文。api

2、关于Android的性能测试

一、启动时间

首先,咱们来讲说启动时间。关于应用的启动时间的测试,分为三类:服务器

①首次启动--应用首次启动所花费的时间eclipse

②非首次启动--应用非首次启动所花费的时间工具

③应用界面切换--应用界面内切换所花费的时间那么如何来作启动时间的测试呢,通常咱们分为2类,一类为使用软件来测试,一类为使用硬件来测试,首先咱们说说软件测试的方法,可能大部分人都比较通晓使用Android提供的DisplayManager来获取activity的启动时间。性能

步骤:学习

经过计算activity最后剩余的时间之和便可(这里可使用excel表格自动相加也可使用算法,我就不详细介绍了)。

除了Display Manager的打印时间方法后,还有经过关注am的启动时间及Display Manager打印的结束时间,经过二者时间之间想减也能获得应用的启动时间,还有能够经过Power Manager来计算打印时间,在应用启动的时候,咱们能够关注Activity Manager-Launch的变化来计算应用的启动时间,还有能够经过截图统计启动时间,对于自研应用,最效率的莫过于直接在程序中插入打印时间的节点了。

除了软件测试的方法,还有硬件测试,咱们可使用高速相机或者手机,采用录像的方法把应用启动过程给录制下来,而后经过人工数帧或者程序数帧的方式计算启动时间。

二、内存消耗

1)内存消耗概念

这个测试节点的设计目标是为了让应用不占用过多的系统资源,且及时释放内存,保障整个系统的稳定性,固然关于内存测试,在这里咱们须要引入几个概念:空闲状态、中等规格、满规格。

空闲状态:指打开应用后,点击home键让应用后台运行,此时应用处于的状态叫作空闲。

中等规格和满规格:指的是对应用的操做时间的间隔长短不一,中等规格时间较长,满规格时间较短。

接下来咱们说说在内存测试中,存在不少测试子项,以下清单所示:

①空闲状态下的应用内存消耗状况

②中等规格状态下的应用内存消耗状况

③满规格状态下的应用内存消耗状况

④应用内存峰值状况

⑤应用内存泄露状况

⑥应用是否常驻内存

⑦压力测试后的内存使用状况

2)关于Android内存测试方法分类

①使用Android自己提供的ActivityManager.MemoryInfo()方法得到(此方法请百度或google)此类第三方工具备如网易的Emmagee、安测试、腾讯的GT等。

②使用Android提供的对应内容,来获取。

③使用Android提供的procrank。这里咱们详解一下procrank方法(批处理)。

首先,去google获取procrank、procmem、libpagemap.so三个文件;而后push文件,执行;最后,剩下的就是整理测试数据了。

3)关于内存泄露方面的测试

能够经过几个方面来测试:

①经过monkey压力测试记录内存使用状况,分析数据曲线图及日志状况;

②经过eclipse上的mat+heap来分析存在内存泄露方面的节点。

三、CPU方面的测试

1)子项清单

CPU跟内存同样,存在一些测试子项,以下清单所示:

①空闲状态下的应用CPU消耗状况

②中等规格状态下的应用CPU消耗状况

③满规格状态下的应用CPU消耗状况

④应用CPU峰值状况

2)CPU的测试方法

1.使用Android提供的

2.使用top命令

3.第三方软件

例如:3Dmax、安兔兔等。

3)GPU的测试方法

自从CPU及内存后,GPU这个词对于PC性能测试者也不陌生了。3Dmax、安兔兔等之类的第三方软件,让GPU在移动端性能测试领域都知晓。但对于应用的GPU该如何来测试呢?咱们先引入几个名词:过分绘制、帧率、帧方差。

 

过分绘制:是指界面显示的activity套接了多层而致使;

帧率:是指屏幕刷新率;

帧方差:是指屏幕刷新帧间隔方差。

对于GPU的测试主要包括如下几个测试子项:界面过分绘制、屏幕滑动帧速率、屏幕滑动平滑度。

①过分测绘

它主要经过人工进行测试。打开开发者选项中的显示GPU过分绘制来进行测试(PS:只有Android4.2及以上的版本才具有此功能)。验收的标准为:

a、不容许出现黑色像素

b、不容许存在4x过分绘制

c、不容许存在面积超过屏幕1/4区域的3x过分绘制(淡红色区域)

②屏幕滑动帧速率的2种主要方法

→ 软件测试方法

a、手机端需打开开发者选项中的启用跟踪后勾选Graphics和View

b、启动SDK工具Systrace插件,勾选被测应用,点击Systrace插件,在弹出的对话框中设置持续抓取时间,在tracetaps下面勾选gfx及view选项,

c、人滑动界面能够经过节拍来进行滑动或者扫动,帧率数据会保存到默认路径下,默认名称为trace.html

d、将trace.html文件拷贝到linux系统下经过命令进行转换,生成trace.csv文件:

e、用excel打开文件计算获得帧率

→ 硬件方法

这里须要引入高速相机,打开高速相机,开启摄像模式,录制人滑动或者扫动被测应用的视频,再经过人工或者程序数帧的方法对结果进行计算获得帧率。

③屏幕滑动平滑度测试

方法如同帧率测试,惟一的差别就是最后的结果计算公式的差别。GPU的测试目前业界使用的均为硬件来进行,软件测试的数据相较硬件差别较大,对于帧率及帧方差的测试标准而言,需对待不一样机型设定不一样的标准。

四、功耗测试

1)功耗测试类别

功耗测试主要从如下几个方面入手进行测试:

a、测试手机安装目标APK先后待机功耗无明显差别。

b、常见使用场景中可以正常进入待机,待机电流在正常范围内。

c、长时间连续使用应用无异常耗电现象。

2)测试方法

①软件测试

A、第三方工具:如金山电池管家之类的;

B、自写工具:这里通常会使用3种方法:

第一种,基于Android提供的PowerManager.WakeLock来进行;

第二种,比较复杂一点,功耗的计算=CPU消耗+Wakelock消耗+数据传输消耗+GPS消耗+Wi-Fi链接消耗;

第三种,经过adbshelldumpsysbattery来获取。

②硬件测试

在这里,咱们通常使用万用表或者功耗仪进行测试。使用功耗仪测试的时候,须要制做假电池来进行的,有些不能拔插电池的手机,还须要焊接才能进行功耗测试。

五、流量测试

性能测试的——流量,固然我所指的性能测试是针对大部分应用而言的,可能还有部分应用会关注网速、弱网之类的测试。

1)流量测试,一样须要引入几个名词:中等负荷、高负荷。

中等负荷:应用正常操做

高负荷:应用极限操做

2)测试项包括:

a、应用首次启动流量提示;

b、应用后台连续运行2小时的流量值;

c、应用高负荷运行的流量峰值;

d、应用中等负荷运行时的流量均值;

3)流量测试通常都是用软件来进行的,这里咱们通常分为2类:

a、采用市场提供的第三方工具来进行测试,如流量宝之类的;

b、自研工具进行测试。
今年金九银十我花一个月的时间收录整理了一套知识体系,若是有想法深刻的系统化的去学习的,能够点击传送门,我会把我收录整理的资料都送给你们,帮助你们更快的进阶。

相关文章
相关标签/搜索