如何在安卓设备上计算FPS

5

有没有关于如何获取安卓设备FPS(每秒帧数)的想法?

在开发设置中有一个选项来显示FPS,但我想编写一个应用程序来实现同样的功能。

它内部调用了surfaceflinger API。

2个回答

5
在你的主要Activity类中重写onDraw()方法。调用super.onDraw()然后存储当前系统时间。计算从先前绘制调用到当前绘制调用之间以毫秒为单位的delta_time。然后使用1000ms / delta_time ~ FPS计算FPS。
以下是一些伪代码:
void onDraw(){
  super.onDraw()
  curTime = getTime();
  deltaTime = curTime - prevTime();
  aproxFps = 1000 / deltaTime;
  prevTime = curTime;
}

但这只会计算应用程序的FPS,而不是设备的FPS,对吗? - Robust
使用标准的Android API无法获取设备帧率。您需要使用“root”或自己制作定制ROM。 - slayton

0

除非您对设备进行root并以某种方式进入底层,否则无法完成此操作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接