0

アプリ「CellViz」で Android Maps API v2 を使用しています。このアプリの機能の 1 つは、ユーザーがデータを収集している間に、セル信号のカバレッジを表すラインとポリゴンをリアルタイムでモバイル マップに追加することです。

現在、私のアプリには、新しいラインとポリゴンが追加される前にカバーされる距離を定義するユーザー定義パラメーター (デフォルト = 25m) があります。明らかに、大量の線やポリゴンが再描画されると、UI が遅くなることがあります。

私の問題は、マップ上のオブジェクトの数に関して、この低迷が始まると、ハードウェアに大きく依存することです。したがって、ローエンド デバイスで適切に機能し、マップ上に妥当な量の情報を表示することで、ハイエンド デバイスで機能を有効にする距離パラメーターの単一のデフォルト値を選択するのは、私にとって難しいことです。

アプリで「Show Mobile Polygon History」と「Show Mobile Line History」のチェックを外せる設定があり、これらの設定をオフにすると動きが鈍くなるので、速度低下は描画オブジェクトの数が原因であることは間違いありません地図上の。

UI スレッドに問題が発生しているときにプログラムで検出できるようにしたいので、距離パラメーターをより大きな値に自動調整するか (主に将来の実行に役立ちます)、これらの一部またはすべてを単純に削除できます。ローエンドのデバイスで問題になると、マップからオブジェクトを削除します。

オブジェクトがマップ上に描画されているために、UI スレッドでこの遅延をプログラムで検出する方法を教えてください。

4

1 に答える 1

0

考えられる 1 つの方法は、logcat を解析して GC とその時間を検索することです。

1 秒間に 100 ミリ秒を超える GC を取得した場合、それは十分に遅いのでしょうか? テストで表示されるはずです。

于 2013-04-14T14:29:31.953 に答える