我正在开发一款安卓游戏,我正在使用 SurfaceView。我有一个每 16ms 调用一次的方法(我想要 60fps)
public void myDraw(SurfaceHolder holder) {
Canvas c = null;
long start = System.currentMillis();
try {
synchronized(holder) {
c = holder.lockCanvas();
if (c != null) {
c.drawColor(Color.GREEN);
}
}
} finally {
if (c != null) {
holder.unlockCanvas(c);
}
}
Log.i(TAG, "total time:" + (System.currentMillis() - start));
}
当我运行我的应用程序时,LogCat 的输出是:
total time:30
total time:23
total time:6
total time:39
total time:17
为什么画布的锁定/解锁需要太多时间?有没有更好的方法来解决我的问题?(也就是说,要有一个 60 fps 的应用程序)
谢谢!