奥利奥游戏速度太慢
Game too slow on Oreo
我是 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 上测试这款游戏。
当我将 phone 升级到 Android 8 时,FPS 数字急剧下降。使用 Android 6 我可以达到 62 FPS,现在(使用相同的代码)我不能超过 13 FPS!
为什么?问题是在我的项目中还是在 Android 中?
我可以修复它吗?
我通过删除 main 方法中的 canvas.scale (...)
解决了这个问题。
我无法解释为什么 FPS 在 Android Oreo 更新后才下降。
我是 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 上测试这款游戏。 当我将 phone 升级到 Android 8 时,FPS 数字急剧下降。使用 Android 6 我可以达到 62 FPS,现在(使用相同的代码)我不能超过 13 FPS! 为什么?问题是在我的项目中还是在 Android 中? 我可以修复它吗?
我通过删除 main 方法中的 canvas.scale (...)
解决了这个问题。
我无法解释为什么 FPS 在 Android Oreo 更新后才下降。