如何使adb shell ps列出Android O中的所有进程?

52

adb shell ps在安卓O版本中无法正常工作。

在安卓O版本中,adb shell ps命令只会列出ps进程的信息,而不像之前的安卓版本那样列出所有进程的信息。

如何在安卓O版本中列出所有进程的信息呢?


请问您能告诉我这里有什么不清楚的地方吗? - be_good_do_good
1
请问您能告诉我为什么要给我点踩吗? - be_good_do_good
2个回答

86

adb shell ps -A会列出Android-8.0-O版本中的所有进程。

我认为Google在此版本中升级了ps二进制文件。


你得到了什么输出? - be_good_do_good
当我执行进程后读取时,我得到了空字符串。 - Jyoti JK
从另一家公司获取了你的代码问题,让我尝试更新。 - be_good_do_good
嗨@be_good_do_good,我只能通过系统获取进程列表,而无法获取任何根进程,有什么解决办法吗?我正在以编程方式应用此命令,并且我获取的进程是由同一用户获取的,而不是来自根或系统。有什么解决办法吗? - Gevaria Purva
当我通过机器终端运行时,它会列出所有进程,但当我在Android应用程序代码中运行它时,它只列出应用程序进程和ps进程!@be_good_do_good - Dr.jacky
显示剩余2条评论

24

答案是:ps -A

但是,ps 命令中有很多新选项。试着运行 ps --help

generic_x86:/ $ ps --help
usage: ps [-AadefLlnwZ] [-gG GROUP,] [-k FIELD,] [-o FIELD,] [-p PID,] [-t TTY,] [-uU USER,]

List processes.

Which processes to show (selections may be comma separated lists):

-A  All processes

-a  Processes with terminals that aren't session leaders

-d  All processes that aren't session leaders

-e  Same as -A

-g  Belonging to GROUPs

-G  Belonging to real GROUPs (before sgid)

-p  PIDs (--pid)

-P  Parent PIDs (--ppid)

-s  In session IDs

-t  Attached to selected TTYs

-T  Show threads

-u  Owned by USERs

-U  Owned by real USERs (before suid)

Output modifiers:

-k  Sort FIELDs in +increasing or -decreasting order (--sort)

-M  Measure field widths (expanding as necessary)

-n  Show numeric USER and GROUP

-w  Wide output (don't truncate fields)

Which FIELDs to show. (Default = -o PID,TTY,TIME,CMD)

-f  Full listing (-o USER:12=UID,PID,PPID,C,STIME,TTY,TIME,ARGS=CMD)

-l  Long listing (-o F,S,UID,PID,PPID,C,PRI,NI,ADDR,SZ,WCHAN,TTY,TIME,CMD)

-o  Output FIELDs instead of defaults, each with optional :size and =title

-O  Add FIELDS to defaults

-Z  Include LABEL

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接