2010-12-27 5 views
3

私はユーザーの動きを追跡するために連続タッチが必要なゲームを持っており、SurfaceViewを描画します。私は約30秒の間隔で気づいた system_serverは、GCでキックして、ゲームが吃音を引き起こします。 画面に触れないと、system_serverはGCではありません。私は 誰かがこの問題を以前に遭遇したのかと疑問に思います。私は キャンバスを使って画面上に30個以上のオブジェクトを一度に描画し、 はかなりスムーズに(56fps)system_serverがステップインするまで実行します... はSurfaceViewを継承していますか?この問題は、3Dゲーム( GLSurfaceViewを使用)のようには見えません。Android onTouchEvent()が連続タッチするとsystem_serverが発生する

私はSamsung Vibrantで開発中です。

ありがとうございます!

+0

onTouchEvent()に小さな遅延を置くと、このGCの頻度はsystem_serverによって減少しますが、私のゲームの応答性...今はきれいなソリューションがあるようには見えませんが、うまくいけばAndroid 2.3はこれを修正します:http://www.rbgrn.net/content/412-android-23-brings-games-to-最前列 – broody

+0

更新:私はついに吃音問題を解決しました。私はレンダリングとロジックを扱う2つのスレッドを持っていましたが、これは私の実装が非常に非効率的でした...ロジックとレンダリングを1つのスレッドに結合した後、ゲームのプレイはsmoooooth 56fpsです:) system_serverはまだですが、 300ms〜400msの代わりに〜180msのみ – broody

+0

ロジックとレンダリングを1つのスレッドに組み込んだということはどういう意味ですか?私はこのタイプの実装の例を見たいと思っています!私はタッチイベントを持つGCをあまりにも多く引き起こしますが、ゲームの開始時に1つのGCしか触れていないときには心配することはありません。私が何度も触れると、それはかなり悪くなる。 –

答えて

0

ゲームを開始する前にオブジェクトを割り当てていますか?ゲーム中に新しいオブジェクトを作成して古いオブジェクトを解放すると、必然的にGCが起動します。

関連する問題