Android 空屏幕渲染平均占用16%的CPU

Android 空屏幕渲染平均占用16%的CPU,android,libgdx,live-wallpaper,Android,Libgdx,Live Wallpaper,我正在运行libGDX应用程序作为实时壁纸。我用的是SpriteBatch和2D Stage。在三星S4上呈现空(黑)屏幕的成本平均为16%(使用adb shell top进行测量)。即使考虑到屏幕的大小,似乎也有点太大了。我的方法有问题吗 public class TestWallpaper implements ApplicationListener, AndroidWallpaperListener { ... @Override public void ren

我正在运行libGDX应用程序作为实时壁纸。我用的是SpriteBatch和2D Stage。在三星S4上呈现空(黑)屏幕的成本平均为16%(使用adb shell top进行测量)。即使考虑到屏幕的大小,似乎也有点太大了。我的方法有问题吗

public class TestWallpaper implements ApplicationListener, AndroidWallpaperListener {

    ...

    @Override
    public void render () {
        if (loading && scene.loadUpdate()) {
            doneLoading();
        }

        float timeDelta = Gdx.graphics.getDeltaTime();

        Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);

        if(!loading) {
            stage.act(Gdx.graphics.getDeltaTime());
            stage.draw();
        }
    }
}

如果您的库中有可能-尝试限制FPS,这将减少CPU使用。我已经尝试过,但在libGDX上实现这一点的唯一方法是关闭连续渲染,并请求帧渲染为定时事件。。看起来很糟糕:(这是不是特别将16%的CPU分配给了您的软件包?因为启动器也使用了一些。我发现在全屏活动中运行与实时墙纸完全相同的ApplicationListener会导致显著的帧速率下降,但这是因为GPU瓶颈,而不是CPU。是的。这只是我的软件包。您可以在自己的软件包中添加睡眠r render方法来降低帧速率。