如何使用adb在Android设备上启动流程

时间:2013-02-21 09:47:20

标签: android adb

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

我可以通过命令

杀死特定进程
adb kill "PID"  (PID is the process ID)

并且该过程被杀死。

但是当我使用命令

启动时
adb start "PID"

它不会启动这个过程。

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

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

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

原生应用没有活动。它们只是 - 原生二进制文件。

如果你所知道的只是过程&#39;数字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启动,并且更有可能该应用是&#34;服务&#34;应用程序。要控制它,您需要找到服务的名称,然后使用stop <service>start <service>

要查找服务的名称grep ^service /init*rc | grep <binary name>,服务的名称将位于第二列(即&#34; adbd&#34;):

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

因此,要正确控制此应用,您应该使用stop adbdstart adbd

答案 2 :(得分:0)

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

ps PID

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

adb shell
uptime

或在一个命令中

adb shell uptime

但如果您的二进制文件不在$ PATH中列出的某个目录中,则必须输入整个路径

adb shell /system/bin/uptime

您可以通过以下方式检查$ PATH:

adb shell echo $PATH