【发布时间】:2013-07-24 09:05:23
【问题描述】:
我正在尝试停止 Android 2.3.7 设备上的应用程序。但在这个版本的 Android 中,我不能使用“强制停止”命令。您知道在非 root 设备上关闭应用程序的其他方法吗?
【问题讨论】:
我正在尝试停止 Android 2.3.7 设备上的应用程序。但在这个版本的 Android 中,我不能使用“强制停止”命令。您知道在非 root 设备上关闭应用程序的其他方法吗?
【问题讨论】:
第一种方式
需要root
使用kill:
adb shell ps => 将列出设备上所有正在运行的进程及其进程 IDadb shell kill <PID> => 而不是 <PID> 使用应用程序的进程 ID
第二种方式
在 Eclipse 中打开 DDMS 透视图。
在Devices 视图中,您将找到所有正在运行的进程。
选择进程并点击Stop。
第三种方式
它只会杀死应用程序的后台进程。
adb shell am kill [options] <PACKAGE> => 杀死所有与(应用程序包名称)相关的进程。此命令仅终止可安全终止且不会影响用户体验的进程。
选项是:
--用户 |全部 | current:指定要杀死其进程的用户;如果未指定,则为所有用户。
第四种方式
需要root
adb shell pm disable <PACKAGE> => 禁用给定的包或组件(写成“包/类”)。
第五种方式
请注意,只有使用调试密钥签名的应用才支持 run-as。
run-as <package-name> kill <pid>
第六种方式
在 Honeycomb 中引入adb shell am force-stop <PACKAGE> => 强制停止与(应用程序包名称)相关的所有内容。
P.S.:我知道第六种方法对你没用,但我觉得把这个方法加入列表很重要,这样大家就知道了。
【讨论】:
kill 时,我收到“不允许操作”错误。我的设备没有 root 权限,我必须通过 ADB 执行此操作。
如果你有 root 设备,你可以使用kill 命令
使用 adb 连接到您的设备:
adb shell
会话建立后,您必须提升权限:
su
然后
ps
将列出正在运行的进程。记下要终止的进程的 PID。然后摆脱它
kill PID
【讨论】:
如果你想杀死粘性服务,下面的命令不工作:
adb shell am force-stop <PACKAGE>
adb shell kill <PID>
以下命令是WORKING:
adb shell pm disable <PACKAGE>
如果要重启应用,必须先运行以下命令:
adb shell pm enable <PACKAGE>
【讨论】:
am force-stop <PACKAGE> 命令对我不起作用......所以我最终使用了 pm disable <PACKAGE> 和 pm enable <PACKAGE> 组合......但是,因为我还需要启动应用程序,我添加了一个额外的命令行monkey -p <PACKAGE> -c android.intent.category.LAUNCHER 1
要从应用程序中杀死,您可以这样做:
android.os.Process.killProcess(android.os.Process.myPid());
【讨论】: