在Android中杀死shell中的进程

时间:2017-02-08 17:31:23

标签: android service adb

我试图找到一些方法从shell中杀死Android中不必要的服务/进程。 问题是,在杀死进程后,它会在几秒钟后重新启动!

例如我试图杀死电池警告,但它会继续重新开始:

perror()

我确实在以下链接中找到了几种杀死服务/进程的方法,但该过程又重新开始。

Android ADB stop application command like "force-stop" for non rooted device

是否只能在init.rc中完成?

谢谢,

3 个答案:

答案 0 :(得分:2)

此服务可能以STICKY开头 - 在预定义超时后,操作系统会自动重启。

您可以通过从设备中提取logcat并使用您尝试杀死的服务名称来搜索它来检查它:

$ adb logcat -d > logcat.txt
$ grep -C 5 -i batterywarning logcat.txt

如果您看到scheduling restart of crashed service in X seconds行的内容,那么您确定操作系统正在重新启动该服务。

如果情况确实如此,我怀疑你可以在非root设备上完全杀死它(我不知道如何在root设备上实现这一点)。

答案 1 :(得分:0)

拥有进程名称时杀死一个进程(基本上不必搜索'ps'以获得进程ID,然后使用PID杀死它):

adb shell杀死$(pidof com.android.phone)

答案 2 :(得分:0)

从终端使用以下命令: adb shell am crash [applicationId]