adb(android debug bridge) shell のストレステストを実行したいです。(この点で adb シェルは、Android フォンによって提供される単なるコマンド ライン ツールです)。
Python からサブプロセスを作成し、このサブプロセスで「adb shell」コマンドを実行します。サブプロセスの適切な標準入力を介して提供しているこのサブプロセスに与える必要があるコマンドがいくつかあります。
すべて問題ないように見えますが、ストレス テストを実行しているときです。約100回の繰り返しの後、標準入力に与えるコマンドがサブプロセスに到達しません。別の端末でコマンドを実行すると、正常に動作します。しかし、問題はこの stdin にあります。
誰が私が間違っているのか教えてもらえますか。以下はコードサンプルです
class ADB():
def __init__(self):
self.proc = subprocess.Popen('adb shell', stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, shell=True,bufsize=0)
def provideAMcommand(self, testParam):
try:
cmd1 = "am startservice -n com.test.myapp/.ADBSupport -e \"" + "command" + "\" \"" + "test" + "\""
cmd2 = " -e \"" + "param" + "\"" + " " + testParam
print cmd1+cmd2
sys.stdout.flush()
self.proc.stdin.write(cmd1 + cmd2 + "\n")
except:
raise Exception("Phone is not Connected to Desktop or ADB is not available \n")