我在android上執行了一個小問題。我正在使用OpenGL ES渲染一些東西。對於每一幀,我都必須更新日期。所以我決定放一個最大的FPS來避免無用的計算。Android上的FPS問題
但事情是,無論我每秒鐘的幀數是多少,我都沒有看到任何區別。即使我把1 fps。
下面是我的代碼位:
long now = SystemClock.elapsedRealtime(), diff;
diff = now - CURRENT_TIME;
if (diff < MILLISECOND_PER_FRAME)
{
try
{
wait(MILLISECOND_PER_FRAME - diff);
}
catch(Exception e)
{}
now = SystemClock.elapsedRealtime();
diff = now - CURRENT_TIME;
}
CURRENT_TIME = now;
所以,這一段代碼似乎沒有執行在所有放緩。任何建議?
而且,正好我如果任何人有疑問,對於X FPS,我計算MILLISECOND_PER_FRAME作爲
MILLISECOND_PER_FRAME = (int)(1000.0f/X);
解決:
好了,所以我解決了這個問題。如果您想要某個線程在特定的毫秒數內休眠,請使用Thread.sleep(millis);.該函數影響它正在運行的線程。現在我看到,當我把1 fps與25 fps相比時,它們有很大的不同。
感謝大家對這個問題的看法。
你可以在下面回答你自己的問題。 – Reno