奥利奥游戏速度太慢

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 更新后才下降。