我正在使用adb命令来管理Android手机上的进程。
我可以通过命令
杀死特定进程adb kill "PID" (PID is the process ID)
并且该过程被杀死。
但是当我使用命令
启动时adb start "PID"
它不会启动这个过程。
我希望启动的进程位于/ system / bin文件夹中,我不知道该进程的包或活动名称是什么。我所知道的就是这个过程的“PID”和“用户”。
是否有任何命令在Android设备上启动特定进程?
答案 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 adbd
和start 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