通过pid杀死Android上的进程

时间:2013-05-24 23:25:43

标签: java android linux

我发现了一些关于stackoverflow的类似问题,但我还没有找到 一个适合我的情况。

到目前为止,我试过了:

    Runtime.getRuntime().exec(new String[]{"su","-c","kill -9 "+pid});
    //am.killBackgroundProcesses(pkgName);
    //android.os.Process.killProcess(pid); 

如果我从 adb 键入su -c kill -9 pid,那就有效了!为什么不以编程方式工作?

我是否需要在permission中添加AndroidManifest.xml

顺便说一句,该设备已经扎根。

1 个答案:

答案 0 :(得分:1)

首先,用这种方式调用su可能不是一个好主意。 (pid的每个变体都可能需要由管理您su的调用的任何应用程序授权。)大多数人调用sh然后编写他们想要执行的命令。

<击> 我立刻注意到的错误是你的-9需要在数组的不同部分。例如:

Runtime.getRuntime().exec(new String[]{"su", "-c", "kill", "-9", ""+pid});

<击>

编辑:实际上,这似乎应该可行。我忘记了-c的论证需要是整个命令。

您可以找到一些示例代码here,用于在Android上以root身份执行命令。

您可以做的另一件事是尝试指定sukill二进制文件的完整路径。 (可能是电话专用的,所以要小心)

编辑2 :我想知道您是否遇到this issue。您使用的是哪个版本的Android?