Android APP性能测试笔记(二)
(5)FPS
每秒传输帧数(Frames Per Second),每秒钟帧数愈多,所显示的动作就会愈流畅,标准的fps是60
帧数就是在1秒钟时间里传输的图片的量,也可以理解为图形处理器每秒钟能够刷新几次,通常用fps(Frames Per Second)表示。每一帧都是静止的图象,快速连续地显示帧便形成了运动的假象。高的帧率可以得到更流畅、更逼真的动画。每秒钟帧数 (fps) 愈多,所显示的动作就会愈流畅。
掉帧一般指由于硬件不足以负荷显示器画面动态显示刷新的频率,从而帧率过低所造成的画面出现停滞(或短时间或长时间)现象。
掉帧在游戏中就是玩游戏过程中,出现卡这种情况,图像未及时刷新造成,画面粘滞。
1)测试工具
GT
2)测试方法
GT操作参考:
3)例子:某电商APP的首页 (竞品分析)
第一次采集:fps在 39 - 59之间,平均值47
第二次采集: fps在 34 - 55 之间,平均值41
以上,fps在人眼感知范围内不觉得卡顿的FPS频率大约是30以上,但是想要 达到流程度等级则需要为60
由于FPS的机制问题,单单依靠这个数据不足以说明页面一定存在掉帧,但是从上面的GPU呈现模式测试结果来看,页面是存在掉帧情况的,
建议开发使用APP源码,打开AndroidDevice Monitor工具中的UI布局分析器HierachyViewer功能对三个页面再进行检测一遍,看是否有必要进行相关优化;
注:测试使用的是真机,官网提到:出于安全考虑,Hierarchy Viewer只能连接Android开发版手机或是模拟器(准确地说,只有ro.secure参数等于0且ro.debuggable等于1的android系统)。Hierarchy Viewer在连接手机时,
手机上必须启动一个叫View Server的客户端与其进行socket通信。而在商业手机上,是无法开启View Server的,故Hierarchy Viewer是无法连接到普通的商业手机。(模拟器不太准确,且有些数据无法获取到)
4)优化方案
1、没有用的父布局时指没有背景绘制或者没有大小限制的父布局,这样的布局不会对UI效果产生任何影响。可以把没有用的父布局,通过<merge/>标签合并来减少UI的层次;
2、使用线性布局LinearLayout排版导致UI层次变深,如果有这类问题,使用相对布局RelativeLayout代替LinearLayout,减少UI的层次;
3、不常用的UI被设置成GONE,比如异常的错误页面,如果有这类问题,需要用<ViewStub/>标签,代替GONE提高UI性能。
(6)内存,CPU,流量
1)测试工具
GT
2)测试方法
分不同状态进行测试(3次采集,竞品分析对比)
空闲状态:打开应用后,,点击home键不退出应用,让应用后台运行20分钟
满规格:操作页面5分钟左右
中等规格:操作页面10分钟左右
3)测试数据
按照从小到大进行排序,取90%位置的数据作为测试的结果。
4)例子
空闲状态下性能数据如下图:
点击某个参数后,详细记录了数据
我们需要把数据导出文件,然后再取90%数据
adb pull/sdcard/GT/GW/com.xxx.client/6.0.0/201903011505
C:\Users\Administrator\xxx\app
CPU形成的图表,可见空闲状态下,CPU占用率90% 位置数据是38%
空闲状态下,流量较少,发送和接收流量基本在45KB以内
空闲状态下,内存使用90%的位置是94.81MB
最后,把上面测试后的数据和分析结果,汇总成性能测试报告就可以了。
Android APP性能测试笔记(二)的更多相关文章
- Android APP性能测试笔记(一)
Android APP性能测试笔记(一) (1)工具使用 Android Studio GT, root的真机 (2)记录apk大小(对比竞品) 使用Android Studio导入需要测试 ...
- Android APP压力测试(二)之Monkey信息自动收集脚本
Android APP压力测试(二) 之Monkey信息自动收集脚本 前言: 上一篇Monkey介绍基本搬抄官方介绍,主要是为了自己查阅方便.本文重点介绍我在进行Monkey时如何自动收集相关信息 ...
- Android app性能测试小结(7个性能指标)
1.性能测试的几个指标: 2.性能测试环境准备: 3.启动时间 3.1,监控值的获取方法 启动分为冷启动和热启动,冷启动:应用程序首次启动,进程首次创建并加载资源的过程:热启动:应用程序启 ...
- Android Studio配置 AndroidAnnotations——Hi_博客 Android App 开发笔记
以前用Eclicps 用习惯了现在 想学学 用Android Studio 两天的钻研终于 在我电脑上装了一个Android Studio 并完成了AndroidAnnotations 的配置. An ...
- Android APP开发笔记
环境搭建 windows系统上需要以下软件: android SDK -- app开发工具包, 开发运行环境(包括SDK管理工具,和虚拟设备管理). JDK -- java 开发工具包, 负责app代 ...
- Android App性能测试之一:简介
1.性能测试 启动时间,主要测试App在启动过程中的耗时情况 CPU, 主要测试App在使用过程中的CPU占比率 流量,主要测试App在使用过程中对流量的消耗情况 电量,主要测试App在使用过程中对电 ...
- Android Studio 学习笔记(二):布局简介和xmlns说明
初学Android Studio,是在b站看的教程视频,这里的笔记也是以其为基础的,个人强烈安利: [天哥]Android开发视频教程最新版 Android Studio开发 Android 布局简介 ...
- Android请求网络共通类——Hi_博客 Android App 开发笔记
今天 ,来分享一下 ,一个博客App的开发过程,以前也没开发过这种类型App 的经验,求大神们轻点喷. 首先我们要创建一个Andriod 项目 因为要从网络请求数据所以我们先来一个请求网络的共通类. ...
- Android SwipeRefreshLayout 下拉刷新——Hi_博客 Android App 开发笔记
以前写下拉刷新 感觉好费劲,要判断ListView是否滚到顶部,还要加载头布局,还要控制 头布局的状态,等等一大堆.感觉麻烦死了.今天学习了SwipeRefreshLayout 的用法,来分享一下,有 ...
随机推荐
- 2018-11-29 VS Code英汉词典插件v0.0.6-改为TS实现, 加测试
如前文VS Code英汉词典插件v0.0.4-驼峰下划线命名打算, 首先将JS源码改为TypeScript实现, 并添加了必要的测试. 昨天得知vue.js 3.0会用TypeScript实现, 正好 ...
- 并发工具箱 concurrent包的原理分析以及使用
1.java.util.concurrent 包下的类分类图 locks部分:显式锁(互斥锁和速写锁)相关: atomic部分:原子变量类相关,是构建非阻塞算法的基础: executor部分:线程池相 ...
- react-router-dom v^4路由、带参路由的配置
首先安装路由 npm install --save react-router-dom 新建一个router.js文件 然后我们的router.js代码如下↓ import React from 're ...
- Javascript数组系列三之迭代方法2
今天我们来继续 Javascript 数组系列的文章,上文 <Javascript数组系列二之迭代方法1> 我们说到一些数组的迭代方法,我们在开发项目实战的过程中熟练的使用可以大大提高我们 ...
- canvas学习总结四:绘制虚线
上一章节我们说到,线性路径的绘制,主要利用movoTo(),lineTo()等方法,当然 Canvas 2D API 也提供了虚线的绘制方法,CanvasRenderingContext2D.setL ...
- RAS非对称加密与数字证书数字签名
它用图片通俗易懂地解释了,"数字签名"(digital signature)和"数字证书"(digital certificate)到底是什么. 我对这些问题的 ...
- peewee基本操作
本文将简单的介绍Peewee,一览它的主要特点,主要涉及到: 模型定义 存储数据 检索数据 注意:如果你偏爱稍微高级一点的教程, peewee建立类似twitter应用 是一篇结合Flask框架与pe ...
- C和C++头文件大全
C.传统 C++ #include <assert.h> //设定插入点#include <ctype.h> //字符处理#include <errno.h> ...
- 洗礼灵魂,修炼python(68)--爬虫篇—番外篇之webbrowser模块
题外话: 爬虫学到这里,我想你大部分的网站已经不再话下了对吧?有检测报文头的,我们可以伪造报文头为浏览器,有检测IP,我们可以用代理IP,有检测请求速度的,我们可以用time模块停顿一下,需要登录验证 ...
- 【MM系列】SAP里批量设置采购信息记录删除标记
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]SAP里批量设置采购信息记录删除标记 ...