本文将介绍GPU渲染、功耗、网络流量消耗、崩溃检测、lint警告五个模块。1、GPU渲染GPU渲染是指在一个像素上绘制多次(不止一次):显示一个什么都不做的activity界面算作绘制第一层,给activity加背景算作第二层,放一个TextView(带背景的TextView)是第三层,TextView显示的文字是第四层。只是显示一个文字,却在同一个像素上绘制了四次,必须优化。overdraw对动画性能的影响是极其严重的,想要流畅的动画效果,一定不能忽视overdraw。1.1测试方法1)手机端自动调试GPU透支打开手机—>设置—>开发者选项—>调试GPU透支—>显示透支区域打开被测应用GPU透支不同颜色代表不同的绘制度Primarycolors:Drawwithouttransition蓝色:Drawonce(理想状态)Green:DrawtwiceDrawing不允许3xtransitiondrawing面积超过屏幕的1/42.功耗测试在应用程序耗电之前,需要有个大概的了解手机本身的功耗。重启后待机)耗电多少。然后启动待测APP,看看耗电量增加了多少,然后取两者的差值。2.1测试要点测试手机安装目标APK前后待机功耗无明显差异;普通使用场景下可正常进入待机,待机电流在正常范围内;应用程序长时间连续使用无异常耗电现象。2.2测试方法:前提:先关闭所有应用,再打开被测应用。使用第三方测试工具:GT等,只需让测试电流静置一夜,待机电流在正常范围内即可。一般被测应用比较待机电流<=2mA。使用adb命令的具体测试方法如下:1.测试环境:1)安卓手机,wifi/4g2.测试步骤:清除已有功耗数据adbshel??ldumpsysbatterystats--enablefull-wake-history设备功耗数据重置adbshel??ldumpsysbatterystats--reset打开应用测试场景(注意测试时手机不能连接电脑)导出应用功耗信息adbshel??ldumpsysbatterystatspackagename|more>C:\Users\charles\Desktop\a.txt3.网络流量消耗中负载:应用正常运行;高负载:应用极端操作。3.1应用首次启动时测试点的流量值应用在后台持续运行2小时的流量值信息,应用运行前,可以获取应用的初始收发流量通过查看adbshel??lcat/proc/uid_stat/uid/tcp_rcvadbshel??lcat/proc/uid_stat/uid/tcp_snd。Android系统有自己的统计函数(整体流量值)proc/uid_stat/{UID}/tcp_snd和tcp_rcv。UID是每个应用程序在安装时分配的唯一编号,用于识别应用程序。tcp_snd:表示发送数据的累计大小,以字节为单位tcp_rcv:表示接收数据的累计大小。运行应用后,再次使用上述命令,获取应用结束时接收和发送的流量,减去得到应用整体的流量消耗。2)使用第三方测试工具:GT等。TrafficStats类是Android提供的一个流畅的统计类。可以统计手机自开机以来累计使用的流量,也可以统计一个或多个进程或应用程序使用的流量,包括Wi-Fi和移动数据GPRS。GT通过TrafficStats.getUidTxBytes(uid)获取流量数据(该方法号称获取指定uid发送的流量总和,但实际测量的只是tcp层的流量)。3)使用一些测试工具,比如teslin云测试平台。以手中的APP为例,网络流量测试结果如下图所示:4.Crashcrash通过查看bugly的crash反馈,可以清楚的知道crash发生在哪个版本和模块。常用模块及其关键字对比:login:accountvideodetail:短视频ad:advertisement5.lintwarningLint是AndroidStudio提供的一个代码扫描分析工具,可以帮助我们发现代码结构/质量问题,并提供一些解决方案,而且这个过程不需要我们手工编写测试用例。Lint发现的每一个问题都有描述信息和级别(类似于测试发现的bug),所以我们可以很容易的定位到问题,并根据严重程度进行解决。查询方式:androidstudio中Analyze->InspectCode查询结果:以上是性能测试第二部分的内容。到这里,可以算是APP性能测试的重点了。
