0

我正在使用 adb 命令来管理 android 手机上的进程。

我可以通过命令杀死特定进程

adb kill "PID"  (PID is the process ID)

并且该过程被杀死。

但是当我使用命令启动它时

adb start "PID"

它不会启动该过程。

我希望启动的进程位于 /system/bin 文件夹中,我不知道该进程的包或活动名称是什么。我只知道进程的“PID”和“用户”。

是否有任何命令可以在 android 设备上启动特定进程?

4

3 回答 3

3

一旦你杀死了对应的进程PID,你怎么能重新启动它?

您可以尝试通过adb这种方式启动应用程序:-

adb shell
am start -n com.package.name/com.package.name.ActivityName

或者你可以直接使用它:

adb shell am start -n com.package.name/com.package.name.ActivityName
于 2013-02-21T09:50:19.913 回答
1

本机应用程序没有活动。它们就是这样 - 本机二进制文件。

如果您只知道进程的数字 ID - 那么ps <PID>命令将在NAME列中显示进程二进制文件的名称。像这样:

# ps 407
USER     PID   PPID  VSIZE  RSS     WCHAN    PC         NAME
root      407   1     4540   272   ffffffff 000160a4 S /sbin/adbd

如果PPID值为1- 这意味着它已由系统启动,init并且该应用程序很可能是“服务”应用程序。要控制它,您需要找到服务的名称,然后只需使用stop <service>and start <service>

要查找服务的名称运行grep ^service /init*rc | grep <binary name>服务的名称将在第二列(即“adbd”):

# grep ^service /init*rc | grep /sbin/adbd
/init.rc:service adbd /sbin/adbd

所以要正确控制这个应用程序 - 你应该使用stop adbdstart adbd.

于 2013-02-22T07:51:11.783 回答
0

您说您知道您的二进制文件在 /system/bin 中,所以我假设您也知道该二进制文件的名称。如果您不这样做,该命令将帮助您找出:

ps PID

要启动二进制文件(例如正常运行时间),您只需在 shell 中输入其名称:

adb shell
uptime

或在一个命令中

adb shell uptime

但是如果您的二进制文件不在 $PATH 中列出的目录之一中,您必须输入它的完整路径

adb shell /system/bin/uptime

您可以使用以下命令检查 $PATH:

adb shell echo $PATH
于 2015-06-10T18:40:22.913 回答