2016-09-09 31 views
-1

私はPythonコードでadbのやりとりを実行しようとしています。 私はアンドロイドデバイスで実行可能なエンドレスな実行可能ファイルを持っています。これは10秒後に起動したいものです。 今、私はプログラムを起動することができますが、手動でctrl + cを押すと他のプログラムを強制終了することはできません。pythonでadbを実行する:プログラムを実行して終了する

procID = subprocess.Popen(["adb", "shell"], stdin=subprocess.PIPE,) 
procID.communicate('su\n endless_program data/test 5\n') 
time.sleep(5) 
os.kill(procID, signal.SIGINT) 
procID.kill() 

私はos.killまたはprocID.killでそれを殺そうとしましたが、どちらもうまくいかないようです。

私はまた、pexpectを使用しようとしていますが、何らかの理由で私はadbを実行することができません。

答えて

0

実行中のアプリケーションを強制終了しないadbシェルセッションを強制終了しているだけです。実行中のAndroidアプリケーションを強制終了したい場合は、adbシェルでアプリケーションを停止する必要があります。詳細はstackoverflow answerをご覧ください。

+0

こんにちはPhidelux、すばやい返信をいただきありがとうございます。 'adbシェル'と '無限プログラム'を実行した後、プログラム出力はcmdウィンドウを介して実行されます。したがって、私はctrl + cを行うまで、私はadbコマンドへのアクセス権を持っていません。したがって、そのadbシェルセッションでさえも終了されません。私は十分にクリアですか? – TamirE

+0

最初のシェルをブロックするプロセスを終了させるために2番目のシェルを起動することはできませんか? – Phidelux

+0

hmmmm ...面白いです。私はそれを試してみましょう – TamirE

関連する問題