Android 空屏幕渲染平均占用16%的CPU
我正在运行libGDX应用程序作为实时壁纸。我用的是SpriteBatch和2D Stage。在三星S4上呈现空(黑)屏幕的成本平均为16%(使用adb shell top进行测量)。即使考虑到屏幕的大小,似乎也有点太大了。我的方法有问题吗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
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方法来降低帧速率。