編集 2. logcat のスクリーンショットを追加。スプライトの数を 1 に減らしても、この断続的な「停止/開始」が発生します。スプライトが 1 つの場合、フレーム レートは 85 ~ 90 fps 前後になるため、これは私のコードではないと思います。私はそれが電話で何かだと推測しています.logcatによって多くのことがログに記録されているので、バックグラウンドで多くのことが実行されていると想定しています. 実行中にアプリを他のサービスより優先させる方法はありますか?
編集 1. 質問の最後にある編集の詳細を参照してください
約 290 のスプライトをレンダリングするスプライト テストを作成しました。
スプライトが 1 の場合の 1 秒あたりのフレーム数は約 80 で、288 の場合はまだ約 30 です。問題は、スプライトが時々停止して開始することです。これは明らかにフレーム レートではありません。これ?(明確にするために、それは遅くなるのではなく、しばらくの間滑らかな動きであり、その後、すべてが一瞬停止し、その後滑らかに戻ります)。
これは、画面上の 1 つのスプライトでも発生しますが、断続的かつ 5 秒ごとにのみ発生します。スプライトを追加すればするほど発生しますが、フレーム レートが 30 fps を下回ることはありません。スムーズな動き)、これが何であるかを理解しようとしています。
私のスプライトはカスタム クラスから作成されますが、作成される実際のオブジェクトは 3 つだけです (背景、画面上を移動するスプライト (滑らかさを測定できるようにするため)、および 288 個のスプライト (実際には再利用される同じオブジェクトです))。 ) 6 つのバッチでレンダリングされます。
助けてくれてありがとう。
ハードウェアは、Samsung Galaxy Ace 電話です。
編集OK、バッチルーチンで変更し、呼び出しごとに 24 のスプライトをレンダリングしています (14 呼び出し = 336 クワッド + スプライトの移動 + バックグラウンド = 338 クワッド)。約 47 FPS になっています。 GC とは別に、この「ぎくしゃくした」動きまたはフレームレートが下がりすぎていますか?