Android性能专项FPS测试实践

Android获取当前应用FPS(帧数) Android获取本软件(Application)的帧率 阅读详情

前言


最近手上有个项目,需要进行流畅度的专项测试,目前已经进行了一段时间,因此想总结一些经验和教训跟大家分享。

测试需求


  • 通过技术手段量化程序卡顿程度,过程数据可视化
  • 多平台机型适配,方案不能依赖root
  • 不能有Android的API版本限制(因为需要兼容多个系统版本)
  • 监控流程可自动化执行
  • 过程需要连续可靠

测试准备


理解FPS的概念

FPS即Frames per second,>>点击这篇文章 解释的非常清楚。当我们准备测试流畅度的时候,必须先理解两个关键指标60帧每秒以及16.67毫秒,这两个值代表什么意思?怎么得来的?
用过flash的人应该知道动画片其实是由一张张画出来的图片连贯执行产生的效果,当一张张独立的图片切换速度足够快的时候,会欺骗我们的眼睛,以为这是连续的动作。反之类推,当你的图片切换不够快的时候,就会被人眼看穿,反馈给用户的就是所谓的卡顿现象。
想要让大脑觉得动作是连续的,至少是每秒10-12帧的速度,而想达到流畅的效果,至少需要每秒24帧。这也是为什么电影片源通常都是24帧的原因,好奇的同学点击>>知乎高知看看大神的解答。不过60帧每秒的流畅度是最佳的,我们的目标就是让程序的流畅度能接近60帧每秒,当然超过60帧速的话大部分人还是会受不了的。

综上所述,APP需要尽可能的超过24帧/秒,接近60帧/秒的速度,并且在使用的过程中保持这个速率,试想一下你吃着火锅看着电影,突然图像发生了跳跃或者画面撕裂,那种感觉就像米饭里吃到了沙子一样极度不爽,因此这意味着我们的程序需要在16.67ms内处理一幅画面内的所有事,并保持住这个状态。

计算公式:1000ms / 60 frames ≈ 16.67 ms/frames

获取FPS的可行性方案

在查阅了很多的资料,也学习了同行前辈们的各种记录后,我根据自己需要将可行性方案的范围缩小到三种。

  • 方案一
    通过 [设置]->[开发者选项]->[GPU呈现模式分析] ->[在屏幕上显示为条形图] 进行直观的取样,截图如下:
    这里写图片描述

设置完成后的效果是这样的:

从专项到性能:SoloPi实战指南构建APP质量保障体系 在移动应用开发领域,质量保障已从单一的功能验证,演进为涵盖性能、体验与稳定性的系统工程。性能测试作为其核心,通过量化启动速度、界面流畅度、内存占用等关键指标,将主观体验转化为客观数据,为技术决策提供依据。其原理在于对应用运行时资源的无侵入监控与深度分析,旨在提前发现卡顿、耗电等潜在问题,保障用户体验的流畅与稳定。这一实践对于提升用户留存、增强产品市场竞争力具有重要价值。本文以广泛使用的SoloPi工具为例,深入解析其如何通过无线化、非侵入式架构,高效完成性能基准测试、问题定位与自动化集成,为构建从开发到上线 阅读详情

相关推荐

智能座舱测试实战:从入门到精通的测试策略与案例分析

本文深入探讨了智能座舱测试从功能验证到体验保障的思维转变,并系统阐述了集成测试、专项测试与安卓系统测试三大核心策略。通过导航与多媒体音频冲突等实战案例,详细解析了接口、性能、稳定性及OTA升级等关键测试场景,为测试人员提供了从入门到精通的实战指南与进阶路径。

white的博客 362

APP性能测试(启动速度、内存、CPU、FPS、GPU、耗电量)

文章目录启动速度内存CPUFPS(应用的使用流畅度)GPU渲染耗电量 启动速度 测试内容 冷启动速度 热启动速度 完全启动速度 有网启动速度 无网启动速度 主要测试冷启动和热启动 测试标准 测试标准:冷启动时间不超过1.5s, 热启动不超过1s 测试方法 方法1:通过FFmpeg录屏拆帧 https://ffmpeg.zeranoe.com/builds/官网 https://w...

xiadanying的博客 2万+

性能测试-性能狗(Perfdog)测试与数据分析

PerfDog是谁? PerfDog性能狗是移动全平台iOS\Android性能测试工具平台,快速定位分析性能问题,提升APP应用及游戏性能和品质,收集无需ROOT/越狱,手机硬件、游戏及应用无需做任何更改,极简化即插即用。 PerfDog提供什么服务? 腾讯WeTest客户端性能测试工具:PerfDog性能狗为您提供专业的性能测试工具服务:#性能数据采集:安卓平台、iOS平台、H5、小程序、小游戏等性能数据#性能数据管理:账户信息管理、性能数据管理、图表展示、编辑、版本对比、性能测试任务管理#团队协

qq_40676418的博客 4万+

【APP专项】monkey专项性能测试实践-分析-监控

【APP专项】monkey专项性能测试实践-分析-监控

橘子偏爱橙子随笔 688

python实时获取Android FPS

python---实现实时获取Android FPS1:如何计算FPS信息?2:如何获取FPS信息?3:python实现 fps实时获取和计算使用adb shell dumpsys gfxinfo 获取fps信息1:在开始获取fps信息之前,我们先进行获取当前活动窗口,get_focus_window2:在开始获取fps信息之前,我们先进行清除当前窗口fps数据3:使用shell dumpsys gfxinfo +包名 + framestats 获取的这个进程的最近128帧的的详细信息,可能包含多个窗口(也

weixin_42233460的博客 6135

FPS性能测试工具_AS

FPS性能测试工具_AS,FPS性能测试工具_AS,FPS性能测试工具_AS

(一)企业微信 - 会话内容存档

企业微信获取会话记录。

专打丶小豆豆的博客 2890

MT6771 Android13 背光曲线调试与光感数据校准实战

本文详细介绍了MT6771平台在Android 13系统上进行背光曲线调试与光感数据校准的实战经验。针对高亮度环境下背光误调节问题,深入分析了光感数据上报机制,并提供了驱动层配置修改、背光曲线优化及常见问题解决方案,帮助开发者快速定位并解决类似问题。

moon9的博客 287

比NTP还牛逼的时间同步协议:1588v2,亚微秒级!

1588v2,又称为Precision Time Protocol Version 2,即精密时间协议的第二版本,或称为PTPv2,是一种精密时间同步协议标准,旨在实现网络中设备之间的高精度时间同步。该协议由IEEE标准组织发布,并在网络测量和控制系统中得到广泛应用。1588v2的主要目的是在计算机网络中提供高度准确的时间同步。它可用于确保不同设备之间的时钟同步,从而协调它们的操作。这对于需要协同工作的系统、无线通信基站等具有关键性的应用非常重要。

网络技术联盟站 4281

【DaVinci Configurator专题】-6-将UDS&OBD诊断数据库文件CDD和PDX导入到CFG

CDD和ODX是两种诊断数据库文件。机器可读的诊断数据库其实就是将传统的Excel调查表等信息编辑成CDD或ODX文件。CDD是Vector私有的一种诊断数据库格式;ODX是国际标准的诊断数据交互格式。CANdelaStudio编辑CDD文件,以及也可以导出ODX文件;ODX Studio用于编辑ODX文件,诊断数据库的编辑其实就是诊断需求的定义。 下面以PDX为例,将其导入到DaVinci Configurator。 目录 1 打开DaVinci Configurator,导入PDX文件 2 解.

「汽车电子助手」的博客 6751

LPDDR6与LPDDR5 channel/rank/die/bank技术探讨

LPDDR6与LPDDR5 channel/rank/die/bank技术探讨

zilan23的博客 3641

YOLOv11涨点改进| TGRS 2026 顶刊| 注意力改进篇| 引入MSEA多尺度边缘感知注意力,助力红外小目标检测、遥感目标检测、工业缺陷检测、图像去雨雾任务高效涨点

🔥本文提出了一种基于MSEA多尺度边缘感知注意力的YOLOv11改进模型,通过增强网络对边缘、纹理和细粒度信息的感知能力,显著提升复杂背景下的目标检测性能。MSEA模块采用多尺度空洞卷积提取上下文特征,并通过边缘监督和注意力融合机制强化目标边界信息。实验表明该方法在小目标、边界模糊目标和复杂纹理目标检测任务中表现优异,尤其在遥感、工业缺陷和红外检测等场景具有显著优势。文章详细介绍了MSEA的结构原理、核心代码实现、模块配置方法以及三种YOLOv11改进方案.

Ai缝合怪、助力小伙伴高效发论文 182

E2B Agent Runtime Sandbox 沙箱技术架构研究

本实现指南基于E2B的技术架构,提供了完整的基于Firecracker和Docker的Agent Runtime Sandbox后端服务实现方案。架构设计:参考E2B的分层架构,实现API层、管理层和虚拟化层Firecracker集成:深度集成Firecracker提供硬件级安全隔离完整功能:支持文件读写、shell执行、浏览器访问等核心功能生产就绪:提供Docker部署、监控、测试和安全配置可扩展性:设计支持水平扩展和高并发场景。

AI天才研究院 744

14003.xilinx系统移植

文章目录1 xilinx 系统移植 sd卡版本1.1 创建项目1.2 拷贝 *.hdf 到工程目录1.3 根据hdf文件对系统进行配置1.3.1 设置内核源码路径为本地1.3.2 设置分区的名称与大小1.4 清除本地缓存并编译成功1.5 打包生成BOOT.BIN并拷贝到sd卡1.6 问题1.7 系统启动成功1.8 配置设备树文件丰富系统外设 1 xilinx 系统移植 sd卡版本 芯片型号 ZYNQ UltraScale+ XAZU2EG ,对应厂家提供的demo板为 zu102或zu104 1.1 创建

写给自己的笔记 481

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

上一篇: Jenkins中使用火线进行Android静态代码扫描
下一篇: Android性能指标FPS获取的JAVA实现
wpyily
博客等级 码龄19年 37粉丝 31原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值