在项目上碰到应用多个场景电流超标,经过分析是动画导致的,主界面动画是Opengl实现的,而opengl有两种渲染模式:连续不断的渲染和被动渲染,应用的动画直接是默认的连续不断的渲染,这样一来只要打开了应用GPU就会一直渲染,从而造成了功耗偏高。
优化的方式就是将动画渲染模式更改为被动渲染:
a.自动模式
setRenderMode(GLSurfaceView.RENDERMODE_CONTINUOUSLY);
b."脏"模式
.setRenderMode(GLSurfaceView.RENDERMODE_WHEN_DIRTY);
当需要重绘时,调用
GLSurfaceView.requestRender()
此优化能够明显境地GPU开销、降低功耗。