如何计算android view的FPS

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

FPS : frame per second 刷新率 ,每秒绘制的帧数。

如何计算:

在onDraw() 方法中进行逻辑计算

每调用一次onDraw() 方法,则frame 加 1;

因为绘制每帧的时间不同,所以

当时间刚好大于1秒的时候,进行计算。

如绘制了60帧,刚好用了1.2秒

则 fps = 60 / 1.2;

fps = 50 帧/秒;


    @Override

    protected void onDraw(Canvas canvas) {

        super.onDraw(canvas);

	//耗时的绘制

	draw。。。。。。。。



        // fps counter: count how many frames we draw and once a second calculate the

        // frames per second

        ++frames;

        long nowTime = System.currentTimeMillis();

        long deltaTime = nowTime - startTime;

        if (deltaTime > 1000) {

            float secs = (float) deltaTime / 1000f;

            fps = (float) frames / secs;

            fpsString = "fps: " + fps;

            startTime = nowTime;

            frames = 0;

        }

       canvas.drawText(fpsString, getWidth() - 200, getHeight() - 80, textPaint);

    }


Android性能专项FPS测试实践 前言最近手上有个项目,需要进行流畅度的专项测试,目前已经进行了一段时间,因此想总结一些经验和教训跟大家分享。测试需求 通过技术手段量化程序卡顿程度,过程数据可视化 多平台机型适配,方案不能依赖root 不能有Android的API版本限制(因为需要兼容多个系统版本) 监控流程可自动化执行 过程需要连续可靠 测试准备理解FPS的概念FPS即Frames per second,>>点击这篇文章 解释的非 阅读详情

相关推荐

面试官:如何监测应用的 FPS ?

Android 面试进阶指南目录 计算机网络 http 速查 Android 唠唠任务栈,返回栈和启动模式 唠唠 Activity 的生命周期 扒一扒 Context 为什么不能使用 Application Context 显示 Dialog? OOM 可以被 try catch 吗? Activity.finish() 之后十秒才回调 onDestroy ? 如何监测应用的 FPS ? 目录 什么是 FPS? 从 View.invalidate() 说起 承上启下的 “编舞者”—— Chor.

秉心说 2652

[Framework] Android FPS 计算

简单描述一下 View 的绘制过程:`SurfaceFlinger` 在收到 `Vsync` 脉冲信号后会,通过 IPC 的通信方式通知位于应用层的 `Choreographer`, `Choreographer` 在收到信号后会通过 `Handler` 把 Vsync 同步信号发送至主线程,这时候 `Choregrapher` 会根据目前的状态,选择下发触摸事件,动画,绘制(包括 layout,measure,draw) 等等。

xiaokangss的博客 617

帧率计算方式

适合手机开发,滑动性能问题标准确定,以及计算的方法

安卓帧率FPS计算原理

- desiredPresentTime:queueBuffer 的时间戳 - actualPresentTime:present fence signal 的时间戳 - frameReadyTime:acquire fence signal 的时间戳

Wesley的博客 4223

Android测量每秒帧数Frames Per Second (FPS)的方法

本文实例讲述了Android测量每秒帧数Frames Per Second (FPS)的方法。分享给大家供大家参考。具体如下: MainThread.java: package net.obviam.droidz; import java.text.DecimalFormat; import android.graphics.Canvas; import android.util.Log; import android.view.SurfaceHolder; /** * @author impaler * * The Main thread which contains the gam

MySQL常见面试题汇总(建议收藏!!!)

目录一、索引相关(1)什么是索引?(2)索引是个什么样的数据结构呢?(3)为什么使用索引?(4)Innodb为什么要用自增id作为主键?(5)Hash 索引和 B+ 树索引有什么区别或者说优劣呢?(6)什么是聚簇索引(6)非聚簇索引一定会回表查询吗?(6)聚簇索引和非聚簇索引的区别(6)MyISAM和InnoDB实现B+树索引方式的区别是什么?(6)MySQL中有四种索引类型,可以简单说说吗?(6)覆盖索引是什么?(6)联合索引是什么?为什么需要注意联合索引中的顺序?(6)创建的索引有没有被使用到?或者说怎

蔡政洁的博客 7万+

Android帧率监测与优化技巧

帧率是指在一秒内,应用程序能够渲染的图像帧数量。通常以FPS(Frames Per Second)表示。例如,一个应用在每秒内渲染了60帧,那么它的帧率就是60 FPS。帧率越高,用户体验越流畅,但帧率的稳定性也同样重要。

1 2458

【讯飞星火大模型AI】SpringBoot整合星火API:从零构建智能数据分析助手

本文详细介绍了如何使用SpringBoot框架整合讯飞星火大模型API,从零构建一个智能数据分析助手。通过清晰的步骤,指导开发者完成API密钥申请、项目搭建、SDK集成与核心代码编写,实现用户通过自然语言指令和CSV数据,即可自动获得ECharts图表代码与专业数据分析结论,极大降低数据分析与可视化的门槛。

neovim7hacker的博客 275

计算android view的FPS,使用Android SurfaceView的低FPS

使用SurfaceView我的帧率有一些小问题.我正在做我在一些教程中发现的典型内容(他们都说同样的话),但我无法在我的三星Galaxy S(旧的,i9000)上达到一个不错的帧率.这是我对循环线程的代码. FPS初始化为30.@Overridepublic void run() {long ticksPS = 1000/FPS;long startTime;long sleepTime;//fp...

weixin_35709851的博客 761

毫米波雷达SLAM实战:如何在无GPS的地下隧道实现精准三维建图(附Python代码)

本文深入探讨了在无GPS信号的地下隧道等拒止环境中,如何利用毫米波雷达SLAM技术实现精准三维建图。文章系统分析了毫米波雷达点云数据稀疏、噪声多的挑战,并提供了从环境配置、核心算法(如特征提取、ICP配准、回环检测)到全局优化的完整实战解决方案,附有可运行的Python代码,帮助开发者构建鲁棒的自主导航与建图系统。

t8u9v0w1x的博客 238

【Elasticsearch专栏 16】深入探索:Elasticsearch的Master选举机制及其影响因素分析

Elasticsearch的Master选举机制是其分布式架构的基石,确保集群高可用性和数据一致性。通过多数派协议,节点间交换信息并投票选举Master,以维护集群状态和处理请求。该机制自动处理故障转移,保障服务连续性。

weixin_40736233的博客 1774

uniapp进阶:movable-view实现多列网格拖拽排序实战

本文详细介绍了在uniapp中使用movable-view实现多列网格拖拽排序的实战技巧。通过解析movable-area和movable-view的核心原理,提供单列和多列布局的代码实现,并分享性能优化、动态列数适配及常见问题排查等进阶方案,帮助开发者高效完成电商类目排序、仪表盘调整等复杂交互场景。

weixin_29001423的博客 458

从零部署奥比中光Gemini335L:Python SDK编译与手眼标定环境实战

本文提供了一份从零部署奥比中光Gemini 335L深度相机的完整实战指南。详细介绍了驱动安装、Python SDK编译、CMake配置及虚拟环境搭建等关键步骤,并重点解析了如何通过编译生成Python模块,最终实现深度图与点云数据获取,为后续的机械臂手眼标定工作奠定坚实基础。

weixin_29031161的博客 398

【Android面试】动画 & Bitmap

Android 动画 Bitmap

studyForMokey的博客 509

掌控板玩板指南1:初识掌控板、扩展板、Mind+编辑器

掌控板、I/O扩展板入门

好乐无荒之地 1万+

【APM】在Kubernetes中搭建OpenTelemetry+Loki+Tempo+Grafana链路追踪(实战一,Loki日志中查看链路追踪数据)

这对于那些不能直接控制 JVM 启动参数的应用特别有用,比如通过 JNI (Java Native Interface) 调用 JVM 的应用、脚本中嵌入的 JVM 应用,或者一些服务管理工具自动启动的服务。这为用户提供了一个灵活的架构,可以根据需要选择最适合自己的追踪解决方案,或者根据环境(如开发、测试、生产)的不同配置不同的后端。: OpenTelemetry SDK 提供了丰富的特性,如自动追踪上下文传播、手动追踪跨度的创建与关联、标签和事件的添加等,使得追踪数据更加丰富和有用。

CN_Eden 3241

实现Android下的FPS实时显示工具

http://blog.youkuaiyun.com/jinzhuojun/article/details/10428435 原文地址:http://blog.youkuaiyun.com/ariesjzj/article/details/10428435 FPS是图形性能的主要指标之一,Android中的一些应用有显示FPS的功能,如Bsplayer,Skype,Antutu等,但绝大多数应用并

STN_LCD的专栏 9757

matlab 显示曲面网格【2025最新版】

matlab点云工具箱对点云三维重建结果显示的函数。博客长期更新,本文最近更新时间为:2025年9月14日。

点云侠的博客 2580

性能测试 查看Android APP 帧数FPS的方法

(下述需要先安装eclipse,不然无法抓包)1.保证手机与PC连接是正常的2.打开手机“设置”→“开发者选项”(没有开发者选项就点击“关于手机”“版本号”连续点击就会出现开发者选项了)。找到监控一栏点击“GPU更显模式分析”→勾选上“dab shell dumpsys gfxinfo”3.在PC上win+R进入运行,输入cmd,回车。把手机停放在被测软件上在命令行中输入adb shell "du...

v1003499773的博客 7万+

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

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

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

Android游戏开发–测量FPS

在上一篇文章中,我们创建了一个以恒定速度和恒定(或多或少)FPS运行的游戏循环。 我们如何衡量呢? 检查新的MainThread.java类。 package net.obviam.droidz; import java.text.DecimalFormat; import android.graphics.Canvas; import android.util.Log; im...

255

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Android 中 View 渲染机制

优化性能一般从渲染,运算与内存,电量三个方面进行。接下来学习 Android 的渲染机制,Android系统每隔16ms就重新绘制一次Activity,也就是说,我们的应用必须在16ms内完成屏幕刷新的全部逻辑操作,即每一帧只能停留16ms。16ms意味着1000/60hz,相当于60fps。人眼对于流畅动画的感知阈值约为每秒60帧低于60fps会明显感觉到卡顿和不流畅60fps对应的帧间隔时间为16.67ms(约16ms)而如果我们的应用没有在16ms内完成屏幕刷新的全部逻辑操作,就会发生卡顿。

m0_61945436的博客 1040

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

fps游戏_Android游戏开发–测量FPS

fps游戏 在上一篇文章中,我们创建了一个以恒定速度和恒定(或多或少)FPS运行的游戏循环。 我们如何测量呢? 检查新的MainThread.java类。 package net.obviam.droidz; import java.text.DecimalFormat; import android.graphics.Canvas; import android.util.Log; ...

cunfen6312的博客 351

android fps测试 apk,性能测试 查看Android APP 帧数FPS的方法

(下述需要先安装eclipse,不然无法抓包)1.保证手机与PC连接是正常的2.打开手机“设置”→“开发者选项”(没有开发者选项就点击“关于手机”“版本号”连续点击就会出现开发者选项了)。找到监控一栏点击“GPU更显模式分析”→勾选上“dab shell dumpsys gfxinfo”3.在PC上win+R进入运行,输入cmd,回车。把手机停放在被测软件上在命令行中输入adb shell "du...

weixin_29300805的博客 2615

“终于懂了“系列:Android性能优化—FPS提升实战

GPU呈现模型分析(HWUI呈现模式分析)(hl=zh-cn),以滚动直方图的形式直观地显示渲染界面窗口帧所花费的时间此外成熟的性能优化方案 除了实施优化外,还应包括线上监控APM工具和防劣化方案,本篇不会涉及。1.4 优化方案在很多介绍 布局优化、卡顿优化、绘制优化的文章中,提到的解决卡顿问题方案有很多:减少view层级、异步加载view、使用x2c()框架通过Looper设置Printer来监控并解决主线程耗时函数滑动时暂停后台下载任务/IO读写,例如在列表idle时才加载图片/视频。

chuyouyinghe的专栏 3445

专项测试-如何测试APP流畅度,基于adb shell dumpsys gfxinfo命令来获取fps和丢帧率

FPS和丢帧率可以一定程度上作为APP流畅度的一项衡量标准,利用adb shell dumpsys gfxinfo命令可以获取软件渲染加载过程的数据,进行计算从而获取结果 前置业务知识: 在此之前,需要先了解屏幕展示绘制过程及Android的VSync机制,可参考另一篇博客: 专项测试-流畅度测试之前的知识储备-Andorid中VSync机制的介绍 获取数据 运行命令"adb -...

TesterAllen的博客 1万+
上一篇: linux 文件权限
下一篇: linux 查看文件夹的大小
javalive09
博客等级 码龄16年 43粉丝 281原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值