我是Android的新手,我正在尝试编写一个简单的游戏。 这是我使用的主线程游戏循环(非常简单)(我不知道这是否是这个问题):
@Override
public void run(){
[...]
while(running) {
startTime = System.nanoTime();
canvas = null;
//try locking the canvas for pixel editing
//update and draw GameObjects
[...]
timeMillis = (System.nanoTime() - startTime) / 1000000;
waitTime = targetTime-timeMillis;
try{
this.sleep(waitTime);
}catch(Exception e){}
totalTime += System.nanoTime()-startTime;
frameCount++;
if(frameCount == FPS){
averageFPS = 1000/((totalTime/frameCount)/1000000);
frameCount =0;
totalTime = 0;
System.out.println(averageFPS); //Testing
}
}
现在......该项目使用Android 4 API,我正在OnePlus 5上测试此游戏。 当我将手机升级到Android 8时,FPS数量急剧下降。使用Android 6我可以达到62 FPS,现在(使用相同的代码)我不能超过13 FPS! 为什么?问题出在我的项目或Android中? 我能解决吗?
答案 0 :(得分:0)
我通过删除main方法中的canvas.scale (...)
解决了这个问题。
我无法解释为什么FPS在Android Oreo更新后才会下降。