2012-03-14 6 views
2

私はListViewを見て、それをスクロールすると、私はそれが明らかである場合、それが吃音であることを知っています。しかし時にそれがあまり明白でないときに、それはスクロールしているかどうか私を混乱させるかどうか?つまり、フレームが失われたかどうかをどのように検出できますか?プログラムで吃音を検出するにはどうすればよいですか?

このような吃音をプログラムで検出する方法はありますか?私は"How to discover if OpenGL ES frame rate is stuttering - without Instruments?"と読みましたが、AndroidのListViewなどの2Dビューには適していないと思います。

+0

私が気づいた何を私のListViewsは、ガベージコレクタが実行されるたびに「吃音」することです。これは、システムがビューのレンダリング以外の何かをしている時間を費やしていることを意味するので意味があります。 LogCatをチェックして、これがあなたのケースでも起こっているかどうかを確認することができます。 – dmon

+0

それは確かに手がかりですが、私にとってはうまくいきません。私は吃音を感じている間、GCは起こっていません。 – Loong

答えて

2

これを実行する方法の1つは、リストビューを拡張してdrawまたはonDrawメソッドをオーバーライドし、1秒以内に何回呼び出されるかを確認することです。毎秒25フレーム以下のものは、それが吃音していることを意味します。 (ヒント:あなたのアダプタでビューの再利用を確認してください)

はまた、それはあなたがすべての携帯電話で吃音を避けるために、あなたのListView上で行うことができます最適化はほとんど常に存在価値は何もないに対処するとき

+0

FPSが25未満であっても、吃音が発生したわけではありません。スクロールホーム画面をゆっくりと考えます.fpsが10よりも低くても確実ですが、吃音に気付かないでしょう。また、ViewRoot.javaのSHOW_FPS = trueに、現在のfpsを表示させることができます。 – Loong

+0

実際に、ホーム画面をゆっくりとスクロールすると、ゆっくりとスクロールしても、できるだけ最大のfpsがレンダリングされます。 – zrgiu

+0

OKですが、なぜ25ですか?実用的か理論的な価値か? – Loong

関連する問題