過去の投稿記事 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 タグを使用できます。