私は自分のプロファイリングを行っており、ほとんどの時間はdrawBitmapで費やされているようです。AndroidでCanvas drawing-drawBitmapを最適化する方法は?
私は、LunarLanderサンプルで示されているように、SurfaceView/Updating thread/canvas lockingアプローチを使用します。しかし、私は非常に最初のフレーム上の
- へと(this questionに応じて)、それを変更しました
- その上にビットマップバッファを構築し、ペイントそのビットマップ(私の画面の変更ではないすべてを)再利用する後続の各フレームをペイント
- 各フレームの端(画面に)ターゲットキャンバスに一度バッファを描く
でTraceviewこのdrawBitmapが私の800×480のデバイス上のフレーム毎に5ミリ秒を要することを私に示しました。それ以上のものを手に入れることはできますか?それとも、「石に彫られた」もので、毎秒良いフレームを達成するためにコードの他の部分を最適化する必要がありますか?
あなたは、各フレーム汚い四角形を追跡し、それだけでは更新できますか?明らかに、左上と右下隅をちょっと変えれば、それはあまり役に立たないでしょう。 – EboMike
おそらくOpenGLがあなたにとって良い選択になるでしょう。私は携帯電話とタブレットで多くのテストを行いました。drawBitmap()は、タブレットを中心に低すぎます。ただし、いくつかのオプションがあります:http://www.independent-software.com/android-speeding-up-canvas-drawbitmap/ –