我试图在ADB Shell中获取该过程的PID。因此,我正在做ADB外壳,这会让我进入Android外壳。现在,如果我要使用常规外壳获得PID,我将使用
adb shell ps | grep android.process.acore | sed 's/ss*/ /g' | cut -d ' ' -f 2
或
adb shell ps | grep android.process.acore | awk '{ print $2 }'
我获得了PID(数字号-ps | grep android.process.acore
的第二个字段)输出。
但是,如果我在Android shell内运行上述命令(执行adb shell
之后),则分别获得/system/bin/sh: sed: not found
和/system/bin/sh: awk: not found
错误。这意味着,这些命令在ADB Shell中不可用。但是,GREP有效。
adb shell
内ps | grep android.process.acore
的输出是:
XXX_x21 11826 441 502296 39028 ffffffff 4010ff6c S android.process.acore
我正在寻找编号11826。如何在adb shell
中提取它?
另外,如果有直接的方法将PID获取ADB外壳内部。
,请提供帮助。问候,Rumit
以6.0开头的Android版本已经包括pidof
实用程序:
usage: pidof [-s] [-o omitpid[,omitpid...]] [NAME]...
Print the PIDs of all processes with the given names.
-s single shot, only return one pid.
-o omit PID(s)
不确定是否可以直接获得PID,但是您可以尝试以下
设置`ps | grep android.process.acore`回声$ 2
这具有将PS命令的输出设置为变量$ 1,$ 2,$ 3等的影响。PID值在$ 2
我尝试了这个,它似乎有效:
adb shell "set "ps | grep android.process.media"; kill -9 $2"
adb shell pidof [package name]
或
adb shell pidof -s [package name]
-s选项适用于单次,仅返回一个pid。
我尝试了这个,它似乎有效:
-
adb shell
-
ps -A | grep "android.process.acore"