【问题标题】:Kill process on Android by pid通过pid杀死Android上的进程
【发布时间】:2013-05-24 23:25:42
【问题描述】:

我发现了一些关于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,它确实有效!为什么不以编程方式工作?

我需要在AndroidManifest.xml 中输入任何permission 吗?

顺便说一句,设备已经root了。

【问题讨论】:

标签: java android linux


【解决方案1】:

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

我立即注意到的错误是您的 -9 需要位于数组的不同部分。例如:

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

编辑:实际上,这似乎应该可行。我忘了-c 的参数必须是整个命令。

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

您可以做的另一件事是尝试指定su 和kill 二进制文件的完整路径。 (可能是特定于手机的,所以要小心)

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

【讨论】:

  • 是否出现异常?你检查adb logcat了吗?
  • logcat 没有提供任何相关信息
猜你喜欢
  • 2020-03-02
  • 2014-11-24
  • 2021-11-29
  • 2020-01-07
  • 2015-12-31
  • 2017-08-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多