2016-04-04 7 views
2

私が開発しているAndroidデバイスで断続的な「開いているファイルが多すぎます」というエラーが発生しました。コードが数日間実行されたままであるかどうかを明らかにする(データ収集ソフトウェアはスタンドアロンのスマートウォッチで動作するので、これは正常な動作です)。Android - 開いているファイルが多すぎますエラー:開いているファイルとスレッドをすべて表示できますか?

いくつかの調査を行ったところ、これは(おそらく)ファイルを開いて閉じていないことが原因であると考えられます。 try-catch-finallyブロック);多分マルチスレッドで間違っている何かを介して。私はIntentServicesを使用して2つのバックグラウンドプロセスを実行します.InterentServicesは、ファイルを開いたり書き込んだり、何かが間違っていない限り、通常の操作の一部として閉じる必要があります。

これは質問に私をもたらします:

1 - それは、特定のアプリが特定の時点で持って開いているすべてのファイルを調査する(logcatまたはADB経由、またはそうでなければ)可能ですか? 2 - アプリケーションが持つスレッドと、任意の時点で実行中のスレッドを確認することは可能ですか?ブレークポイントを設定してコードをデバッグすることはできますが、スレッドを見る前に数時間は実行しておきたいと思います。

ご協力いただければ幸いです。

答えて

0

あなたは、あなたのアプリがあるすべてのファイルを参照するためにadbのシェルで次のコマンドを実行することができます。

lsof | grep <pid> 

あなたはファイルの総数を表示したい場合は、最後に| wc -lを追加します。

関連する問題