基本的に、製造中のデバイスのストレス/機能テストを実行するためのアプリケーションを開発しています。
アプリケーションは、.log ファイルを生成して UI テストについて通知できるように、Monkey Tool の動作が完了するまで待機する必要があります。一般的に問題はありませんが、Monkey Tool がテストを終了したかどうかを知る必要があります。
ここで主なドキュメントを確認しました: Monkey Android Documentation。
また、Monkey のソース コードを調べる時間もありました。例 1 は次のとおりです。Monkey.java
残念ながら、Monkey が作業を終了する瞬間を検出する手がかりは見つかりませんでした。
したがって、本当の質問は次のとおりです。
Monkey Tool が UI のテストを終了したときに情報を検出または取得する方法はありますか?
- -[編集] - -
シェルを使用してMonkeyプロセスの実行をチェックし、BufferedReaderからの出力を読み取ることで、アマチュアソリューションを試しました。それは機能しますが、それは最善の解決策ではないため、より専門的な回答があればまだ待っています. 前もって感謝します。
私が試したコードは次のとおりです。
boolean is_monkey_running = true;
while(is_monkey_running) {
try {
//checking process state
Process process = Runtime.getRuntime().exec("ps");
BufferedReader buffered_reader = new BufferedReader(
new InputStreamReader(process.getInputStream()));
StringBuilder log = new StringBuilder();
String line = "";
while ((line = buffered_reader.readLine()) != null) {
log.append(line);
}
if (log.indexOf("com.android.commands.monkey") == -1) {
//Monkey process has been finished.
Log.i("AATS", GET_DATE_AND_TIME() + "Monkey has finished testing.");
is_monkey_running = false;
}
else {
//Monkey is still running.
WAIT_N_MILISECONDS(1000);
}
}
catch (IOException e) {
}
}