私はJsoupを使ってhtmlページをいくつか取得して解析し、htmlツリーを操作してから、それを描画するWebViewに渡します。私の操作を迂回すると、Android SDKシミュレータでコードが許容時間(2〜3秒)で実行されますが、私が操作すると、時間が許容できなくなります(約60秒で1ページを読み込みます)。Android SDKプロファイルのトレースビューを理解する方法...?
EclipseとAndroid SDKを使用してプロファイルを実行しましたが、今は結果を解釈しようとしています。ここからhttp://android-developers.blogspot.com/2010/10/traceview-war-story.htmlは「Exclusive Cpu Time%」のプロファイルをソートするためのヒントを得ました。私の驚いたことに、自分のコードは1%でもリストされていませんでした。最大の消費者は、11.9%のandroid.view.ViewGroup.drawChild()です。リストされていない最初のアンドロイド関数(排他的なcpu%でソートされたもの)はjava.lang.ref.Reference.get()であり、0.4%でリストされています。
しかし私は、私のコードのそれは私のAsyncTaskのdoInBackground()しかリストされていないことが分かりました。デバッグ出力によって呼び出されたことがわかっていても、この関数が順番に呼び出す関数は存在しません。なぜそれらはリストに載っていないのですか?
私はこのことをどうするか分かりません。ヒントは非常に高く評価されています。
誰かが興味を持っているのなら... AsyncTaskは私のコードではなく、ここの犯人です。 TraceViewウィンドウでは、私の仕事は非常にまれに実行されていることに気付きました。これは、10ミリ秒のチャンクで約4回/秒です!スレッドの優先順位はデフォルトで5でしたが、スレッドに設定しました。MAX_PRIORITYになりました。これで、前回の60秒以上ではなく、10秒間の受け入れ可能なローディング時間に近づきました。今私はそれが私であるか、これがうまくいく方法であるのだろうか? – OppfinnarJocke