過去の投稿記事 new!
・【画像】漫画でわかる外国人参政権
・東京電力のHPで停電状態が確認できたり(サービス再開!)
・戦国時代 ~ 江戸時代の徳川家康が熱かった
・vaio のバッテリは寿命が短いような気がする
・話題の Western Digital 製 WD20EARS を購入した
・C01LC をビックカメラで買ってきた
・2025年には空中都市が現実化?!
・【動画】わかりやすい「宇宙ひも理論」
・今世紀には「富士山噴火」「東海連動地震」「首都圏直下型地震」か?
・滅びた町、南浜町が Googleストリートビューで見れる

【 amazon 送料無料キャンペーン 】

バックリンクはご自由にどうぞ!     http://mfsocket.blogspot.com/feeds/posts/default?alt=rss リンク集 / ログイン

2012/10/03
Nexus では SurfaceView が遅い

 
Galaxy Nexus の不思議。
galaxy_nexus_common 
SurfaceView で軽いゲームを動かすと、他の端末よりも2倍近く遅い。
drawBitmap と、少しの drawText と drawRect を行ってるだけなのに。
 
Android 4.0以降ならデフォルトで ON になるハードウェアアクセラレーターが
有効になっていないのかもしれない。
 
そして TextureView で実験してみると…こちらは他の端末での SurfaceView と
同等の速度(fps)が出る。
 
さらに不思議な事に、別アプリで TextureView を動かした後に SurfaceView の
アプリを起動すると…速度が2倍近く速くなる。
 
他の端末での SurfaceView と同等の処理速度になる。
 
 
不思議すぎる現象です。ちなみにその場合でも
 
 Canvas.isHardwareAccelerated()
 
は常に false が返ってくるので、ハードウェアアクセラレーションが有効に
なっているかどうかの判定ができない。これは Nexus に限った問題では
ないけど。
 
SurfaceView が遅いこの現象…解決するには 4.0 以降なら TextureView の
検討。幅広く対応するなら GLSurfaceView の検討って感じでしょうか。
 
「TextureView を起動した直後の SurfaceView は高速化する」っていう
流れから、内部的には HW acceleration が行われているような気もしますが…
どうなってるんですかね。

0 コメント:

  • コメントには <b>, <strong>, <em>, <i>, <a> など一部の HTML タグを使用できます。