私は2Dチュートリアルに取り組んでおり、SamsungGalaxyTabで現在のチュートリアル部分をテストすることができました。
チュートリアルでは、デフォルトのアイコンを画面上でランダムに移動するだけです。タップするだけで、新しい動くアイコンを作成します。画面に25個以下の要素がある限り、Galaxyではすべてが正常に機能します(常に60 fps)。
26番目の要素を使用すると、フレームレートは25fpsに低下します。
画像のサイズ/サイズをはるかに大きいものに変更すると、26番目の要素の前に25fps未満に達します。それで大丈夫です。しかし、実際には再現性のない要素の数では、フレームが10fpsから1fpsに(ほとんどの場合)低下します。
Nexus Oneでは、150個の要素を追加しても、50fpsを維持できます。
私が行ったこと:ビットマップ変数を静的なものに変更したので、すべての要素が独自の画像を持っているわけではありませんが、すべて同じものを使用しています。それは振る舞いを取り除きました、しかし私はこの解決策が良いものであるとは思えません。マジックナンバー25は、そのように25の異なる画像しか使用できないことを示唆しています。
誰かがこの動作を引き起こす可能性があるものを知っていますか?サムスンの修正されたAndroidバージョンのバグですか?
私のサンプルEclipseプロジェクトが利用可能です。サムスンの所有者がサンプルでパフォーマンスを確認していただければ幸いです。
編集
同僚が解決策を見つけました。彼はビットマップのロード方法を変更しました
mBitmap = BitmapFactory.decodeResource(res, R.drawable.icon);
に
mBitmap = BitmapFactory.decodeStream(new BufferedInputStream(res.openRawResource(R.drawable.icon)));
しかし、なぜそれがこのように機能するのか、まだ実際にはわかりません...