2011-01-23 25 views
1

フォアグラウンドで長時間実行されているアプリケーションは、時間的に優先順位が高くなりますか? 私は自分の問題について説明します。 Androidの固定インフラストラクチャと通信するためのソフトウェアを移植しました。私はいくつかのテストをしています。各テストは5回の実験を行います(モバイルノードはインフラストラクチャにいくつかのクエリを送信し、成功したクエリの数と平均時間を評価します)。テストの結果はこれらの実験の結果の平均です。 テスト中、アプリケーションは常にフォアグラウンドになります。 実験では、結果が改善されました。 g。 (問10%15%30%40%55%)。 私はシステムを活動として実装しましたが、まだサービスとして実装していません。 テストのために、アプリはロックSCREEN_DIM_WAKE_LOCKとWIFI_MODE_FULLを受け取ります。 ありがとうアプリケーションの優先度

+0

最後の実験では、しばしばアプリケーションがOutOfMemoryErrorを返します。実験中に、アプリケーションのヒープサイズ(DDMSで監視)が増加します。プロセスが十分なメモリを獲得すれば、それはより良くなり、ある時点ではあまりにも多くのメモリを必要とし、OSによって殺されるようです。 – Luigi

答えて

0

これ以上の優先順位はありません。あなたはそれをUiスレッドで行うべきではありません。

は、いくつかの問題があります。

  • ユーザーがアプリを却下することができますし、あなたの大切なアップロードプロセスは中止/一時停止します。解雇後にロジックを再開することはできますが、この場合は理にかなっていません。
  • ユーザーがアプリを終了すると、OSによって閉じられる可能性があります。
  • 更新せずに画面を離れることがあります。その場合は、強制終了が発生します。
  • 次のバージョンのAndroidでAFAIKを使用すると、uiスレッドで正味のロジックを実行すると、FCが得られます。ジンジャーブレッドの厳密なモードにSimilars。

Serviceを使用し、最大優先度のスレッドを生成します。 Androidのスレッドに最大優先度を設定しても何の違いもありますが、それを試してみるかどうか分かりません。

+0

ありがとうございました。私はすでに分離されたスレッドに細部を入れて、私は優先順位を変更しようとしました。私はパフォーマンステストを行うためだけに、アプリケーションを一時的にactvityとして残しました。 – Luigi