2012/05/18(金) [n年前の日記]
#2 [android] 実機上で動作確認中
BG2枚+スプライト相当80枚を、IdeaPad A1 ―― 600x1024、Android 2.3.4 端末で描画してみたら、15FPS前後しか出なかった。酷過ぎる。
手前のBGを半透明で描いているから遅いのかなと思い、試しに市松模様で半透明モドキにしてみたけれど。それでも17FPS。2FPSしか速くならない。その上、見た目がチラチラして、とても気持ち悪い。市松模様でそれらしく誤魔化す方法は、1ドットがそのまま出る状況じゃないと使えないのだな。
Canvas#scale() で全体の拡大縮小をしていたけれど、試しに setFixedSize() を使う形に変えてみたり。… setFixedSize() を呼ぶと、surfaceChanged() が再度呼ばれてしまうあたりで少しハマった。また、画面全体にピッチリ引き延ばされてしまうので、縦横比がかなりおかしなことになってしまった。
実機上で動かしてみたところ、前述の枚数・描画面積でも45FPSぐらいになった。ここまで速くなるとは…。その代わり、見た目が汚くなった。拡大縮小する際に、特定の補完処理がかかっているようで、画面がボケボケに。また、前述のとおり、縦横比がおかしくなる。横画面にするとさらに酷い。
つまり、IdeaPad A1に限って言えば。
ここまで速くなるのであれば、基準サイズを、320x480から480x800にしても、そこそこ動くのではないか。試してみたが、残念ながら30FPS前後まで遅くなった。画像が大きい=描画面積が増えてしまうと、やっぱり処理時間がグンと増えてしまうのだろう。
手前のBGを半透明で描いているから遅いのかなと思い、試しに市松模様で半透明モドキにしてみたけれど。それでも17FPS。2FPSしか速くならない。その上、見た目がチラチラして、とても気持ち悪い。市松模様でそれらしく誤魔化す方法は、1ドットがそのまま出る状況じゃないと使えないのだな。
Canvas#scale() で全体の拡大縮小をしていたけれど、試しに setFixedSize() を使う形に変えてみたり。… setFixedSize() を呼ぶと、surfaceChanged() が再度呼ばれてしまうあたりで少しハマった。また、画面全体にピッチリ引き延ばされてしまうので、縦横比がかなりおかしなことになってしまった。
実機上で動かしてみたところ、前述の枚数・描画面積でも45FPSぐらいになった。ここまで速くなるとは…。その代わり、見た目が汚くなった。拡大縮小する際に、特定の補完処理がかかっているようで、画面がボケボケに。また、前述のとおり、縦横比がおかしくなる。横画面にするとさらに酷い。
つまり、IdeaPad A1に限って言えば。
- Canvas#scale() を使うと、画面は少し綺麗だが、処理は遅い。
- setFixedSize()を使うと、画面は汚いが、処理は速い。
ここまで速くなるのであれば、基準サイズを、320x480から480x800にしても、そこそこ動くのではないか。試してみたが、残念ながら30FPS前後まで遅くなった。画像が大きい=描画面積が増えてしまうと、やっぱり処理時間がグンと増えてしまうのだろう。
[ ツッコむ ]
以上です。