我是java和opengl的新手,仍在学习,原谅我的无知。我已经制作了一个隐约可见的对象apk文件。现在我想在我的设备上播放应用程序时查看fps。我一直在关注这个教程http://www.youtube.com/watch?v=1MYgP8Oj5RY&list=UUKwypsRGgHj1mrlQXhLXsvg&index=67,并尝试修改它为Android但我无法让它工作。
有没有人能告诉我如何在角落或标题页上添加简单的fps指标以及如何控制fps的示例。
由于
答案 0 :(得分:6)
如果您使用此类并调用logFrame(),它将告诉您logcat日志中的fps:
import android.util.Log;
public class FPSCounter {
long startTime = System.nanoTime();
int frames = 0;
public void logFrame() {
frames++;
if(System.nanoTime() - startTime >= 1000000000) {
Log.d("FPSCounter", "fps: " + frames);
frames = 0;
startTime = System.nanoTime();
}
}
}
从我读过的内容中,通过最小化对gl状态的调用来优化代码以获得更好的帧速率
答案 1 :(得分:0)
我知道现在已经很晚了,但这是谷歌的第一个建议。所以我只是想让它变得更好:
为什么计算一秒钟通过的帧数?我需要在我的应用程序中获得FPS的实时值(因为你也应该使用它)。到目前为止我知道它说
Frames/Second
这意味着您可以测量一帧与下一帧之间的时间并说出:
Second/Frame
要获得FPS,只需
1/(Second/Frame).
这是代码。我使用上面的代码编辑它以得到我的结果:
public class FPSCounter {
private long lastFrame = System.nanoTime();
public float FPS = 0;
public void logFrame() {
long time = (System.nanoTime() - lastFrame);
FPS = 1/(time/1000000000.0f);
lastFrame = System.nanoTime();
}
}