2016-09-09 178 views
-1

我試圖通過python代碼執行adb交互。 我有一個無盡的可執行文件在Android設備上,我想開始和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 shell會話,它不會終止正在運行的應用程序。如果您想殺死正在運行的Android應用程序,則必須通過adb shell停止應用程序。詳情請看stackoverflow answer

+0

嗨Phidelux,感謝您的快速回復。在運行'adb shell'和'無盡程序'之後,程序輸出將通過cmd窗口運行。因此,我沒有任何訪問任何adb命令,直到我做ctrl + c。所以即使那個adb shell會話也沒有終止。我清楚了嗎? – TamirE

+0

難道不可能啓動第二個shell來殺死阻塞第一個的進程嗎? – Phidelux

+0

嗯...有趣。我會試一試 – TamirE