【问题标题】:running adb with python: executing a program and ending it用python运行adb:执行一个程序并结束它
【发布时间】:2016-09-09 18:15:34
【问题描述】:

我正在尝试通过 python 代码执行 adb 交互。 我在 android 设备上有一个无限的可执行文件,我想启动它并在 10 秒后将其杀死。 现在,我可以启动程序,但除了手动按 ctrl+c 之外无法杀死它。

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。

【问题讨论】:

    标签: android python subprocess adb pexpect


    【解决方案1】:

    您只是在终止 adb shell 会话,它不会终止正在运行的应用程序。如果您想终止正在运行的 Android 应用程序,您必须通过 adb shell 停止该应用程序。详情请看stackoverflow answer

    【讨论】:

    • 您好 Phidelux,感谢您的快速回复。运行“adb shell”和“无尽程序”后,程序输出通过 cmd 窗口运行。因此,在我执行 ctrl+c 之前,我无法访问任何 adb 命令。所以即使那个 adb shell 会话也没有终止。我够清楚了吗?
    • 难道不能启动第二个 shell 来杀死阻塞第一个 shell 的进程吗?
    • 嗯……很有趣。我试试看
    猜你喜欢
    • 2022-12-18
    • 1970-01-01
    • 2017-10-11
    • 1970-01-01
    • 2010-12-23
    • 1970-01-01
    • 1970-01-01
    • 2018-07-19
    • 2011-02-06
    相关资源
    最近更新 更多