2016-09-09 148 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