我需要监视应用程序的行为并收集有关如何创建/销毁线程的统计信息。我知道 DDMS 有一个线程视图,可以实时显示此信息,但是我可以通过命令行获取相同的信息吗?我想创建自己的工具来记录这些信息并对其进行处理。
澄清:
我正在寻找的是一个可以通过 ADB 传递的命令,它将列出进程下运行的线程。这样,我可以在不同的时间点运行该命令来获取一段时间内所有线程的状态(线程数及其名称)。
有两种方法可以做到这一点。
在 Ubuntu 12.10 上的摩托罗拉 Moto G 上尝试过此操作
-
您可以列出all通过使用在设备上运行的线程top
(在亚行壳牌下)。
$ top -t
PID TID PR CPU% S VSS RSS PCY UID Thread Proc
271 895 1 0% S 11120K 1892K root netd /system/bin/netd
272 272 0 0% S 1040K 200K root debuggerd /system/bin/debuggerd
274 274 2 0% S 63256K 7008K fg system surfaceflinger /system/bin/surfaceflinger
274 451 0 0% S 63256K 7008K fg system Binder_1 /system/bin/surfaceflinger
因此要获取任何详细信息特别的您可以使用的流程grep
$ top -t | grep com.whatsapp
PID TID PR CPU% S VSS RSS PCY UID Thread Proc
15210 15210 0 0% S 550076K 51180K bg u0_a96 com.whatsapp com.whatsapp
15210 15214 0 0% S 550076K 51180K bg u0_a96 GC com.whatsapp
15210 15215 0 0% S 550076K 51180K bg u0_a96 Signal Catcher com.whatsapp
15210 15216 0 0% S 550076K 51180K bg u0_a96 Compiler com.whatsapp
要在您的主机上运行它,只需使用
$ adb shell top -t | grep com.whatsapp
If grep
不支持,使用Busybox http://www.busybox.net/.
-
如果您正在寻找Static看法。您还可以使用ps
.
$ ps -p 15210 -t
USER PID PPID VSIZE RSS PRIO NICE RTPRI SCHED WCHAN PC NAME
u0_a96 15210 275 549036 52136 20 0 0 0 ffffffff 00000000 S com.whatsapp
u0_a96 15214 15210 549036 52136 20 0 0 0 ffffffff 00000000 S GC
u0_a96 15215 15210 549036 52136 20 0 0 0 ffffffff 00000000 S Signal Catcher
u0_a96 15216 15210 549036 52136 20 0 0 0 ffffffff 00000000 S Compiler
Where 15210
是你的进程的PIDcom.whatsapp
希望这能解决您的问题,如果有效请告诉我。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)