Android ADB停止应用程序命令,如非强制设备的"强制停止"

Erd*_*gin 42 android adb

我正试图在Android 2.3.7设备上停止应用程序.但是在这个版本的Android中我不能使用"force-stop"命令.你知道在非root设备上关闭应用程序的其他方法吗?

EvZ*_*EvZ 138

第一种方式
需要root

用法kill:

adb shell ps=>将列出设备上所有正在运行的进程及其进程ID
adb shell kill <PID>=>而不是<PID>使用应用程序的进程ID

第二种方式
在Eclipse中打开DDMS透视图.
Devices视图中,您将找到所有正在运行的进程
选择流程并单击Stop.

在此输入图像描述

第三种方式
它只会杀死一个应用程序的后台进程.

adb shell am kill [options] <PACKAGE>=>终止与(应用程序包名称)关联的所有进程.此命令仅终止可以安全杀死且不会影响用户体验的进程.
选项包括:

--user | 所有| current:指定要杀死其进程的用户; 所有用户如果未指定.

第四种方式
需要root

adb shell pm disable <PACKAGE> =>禁用给定的包或组件(写为"包/类").

第五种方式
请注意,只有使用调试密钥签名的应用程序才支持run-as.

run-as <package-name> kill <pid>


在Honeycomb中引入的第六种方式

adb shell am force-stop <PACKAGE> =>强制停止与(应用程序包名称)相关的所有内容.

PS:我知道第六种方法对你不起作用,但我认为将这种方法添加到列表中很重要,所以每个人都会知道它.

  • 感谢包括#6,现在大多数人将瞄准蜂窝以上.这对我正在编写的脚本完全正确:adb shell am force-stop <PACKAGE> (5认同)
  • 感谢您的回答,但是当我使用“kill”时,我收到“不允许操作”错误。我的设备没有 root,我必须通过 ADB 来执行此操作。 (3认同)
  • 我用的是第六个。奇迹般有效。我用它来停止主应用程序,然后恢复出厂设置并重新安装。这个小脚本可能很有用(分号表示换行,替换它们): adb shell am force-stop &lt;PACKAGE&gt;; adb shell 擦除数据;adb shell 擦除缓存;adb 重启恢复;超时 80 /nobreak; adb install &lt;APK_NAME.apk&gt;; (2认同)

Eri*_* VB 6

如果您有根设备,则可以使用kill命令

使用 adb 连接到您的设备:

adb shell
Run Code Online (Sandbox Code Playgroud)

会话建立后,您必须升级权限:

su
Run Code Online (Sandbox Code Playgroud)

然后

ps
Run Code Online (Sandbox Code Playgroud)

将列出正在运行的进程。记下要终止的进程的 PID。然后摆脱它

kill PID
Run Code Online (Sandbox Code Playgroud)


ife*_*goo 6

如果你想终止粘性服务,以下命令不起作用

adb shell am force-stop <PACKAGE>
adb shell kill <PID>
Run Code Online (Sandbox Code Playgroud)

以下命令有效

adb shell pm disable <PACKAGE>
Run Code Online (Sandbox Code Playgroud)

如果要重新启动应用程序,必须先运行以下命令:

adb shell pm enable <PACKAGE>
Run Code Online (Sandbox Code Playgroud)