GLSurfaceViewでJPCT-AEを使用して、ライブ壁紙を作成しています。まず、レンダラーがサーフェス上に自由に描画できるようにしました(フレームレートを制限しようとはしませんでした)。明らかに、CPU使用率は90%になりました(ジンジャーブレッドでDefy +を使用-私の壁紙は、照明なしで最大200のポリゴンを含む単一の回転球をレンダリングしました)。
これで、サーフェス上でrenderModeを "RENDERMODE_WHEN_DIRTY"に設定し、ハンドラーによって投稿されたRunnableを使用して33ミリ秒ごとにフレームを描画するようにレンダリングを要求しました。
glSurfaceView.setRenderer(renderer);
glSurfaceView.setRenderMode(GLSurfaceView.RENDERMODE_WHEN_DIRTY);
final Handler handler = new Handler();
handler.postDelayed(new Runnable(){
public void run() {
glSurfaceView.requestRender();
handler.postDelayed(this, 30);
}
}, 40);
CPU使用率が1%〜10%に減少しました。これはすばらしいことですが、これが最善の方法かどうか疑問に思っています。
GLSurfaceViewのレンダリングパフォーマンスを改善するためのより良い方法はありますか?私が使用しているこの方法は技術的に正しいですか、それとも後で頭痛の種になりますか?
ありがとうございました。