查看android app 线程信息的命令

86 篇文章 1 订阅

    https://blog.csdn.net/manoel/article/details/39991839

命令

adb shell ps

    -t 查看进程中线程的信息
    -x 查看utime和stime
    -P 查看属性
    -p 查看调度策略,通常是查看一个app处于前台还是后台
    -c 查看哪一个CPU在执行这个进程
    name|pid 用名字或pid过滤

例子

(1) 查看包名为com.eat的线程,也就是com.eat应用的UI线程。

adb shell ps -t |grep com.eat
app_62    21964 141   127748 17012 ffffffff 00000000 S com.eat

UID: app_62 (程序安装的时候,系统分配的。Linux系统是多用户系统,在Android中,一个用户就相当一个应用程序。)

PID: 21964(进程ID)

PPID:141(这个是Zygote进程,因为所有的Android程序都是从这个进程“孵化”出来的。)

另外,也可以用DDMS去查看进程的信息。

(2) 查看app_62这个应用程序中所有的线程。

adb shell ps -t |grep app_62
app_62    21964 141   127748 17012 ffffffff 00000000 S com.eat
app_62    21965 21964 127748 17012 ffffffff 00000000 S HeapWorker
app_62    21966 21964 127748 17012 ffffffff 00000000 S GC
app_62    21967 21964 127748 17012 ffffffff 00000000 S Signal Catcher
app_62    21968 21964 127748 17012 ffffffff 00000000 S JDWP
app_62    21969 21964 127748 17012 ffffffff 00000000 S Compiler
app_62    21970 21964 127748 17012 ffffffff 00000000 S Binder Thread #
app_62    21971 21964 127748 17012 ffffffff 00000000 S Binder Thread #

一个崭新的应用程序包括不下10个线程,大多数都是Dalvik的内部线程。从应用程序的角度,不需要关心它们。

除了com.eat以外的其他所有线程的PPID都是21966,也就是com.eat的PID。这是因为这些线程都是从UI线程孵化出来的。

要关心的有3个线程,分别为:

app_62    21964 141   127748 17012 ffffffff 00000000 S com.eat
app_62    21970 21964 127748 17012 ffffffff 00000000 S Binder Thread #
app_62    21971 21964 127748 17012 ffffffff 00000000 S Binder Thread #

不难看出,com.eat是UI线程;另外2个Binder线程用来调用系统的一些服务,一个是ApplicationThead,一个是ViewRoo.W对象。


参考资料

http://blog.csdn.net/manoel/article/details/39500351
---------------------  
作者:孙国威  
来源:CSDN  
原文:https://blog.csdn.net/manoel/article/details/39991839?utm_source=copy  
版权声明:本文为博主原创文章,转载请附上博文链接!

 

 

Android的ps命令介绍和技巧

 

 

zhiweiofli

 zhiweiofli 发布于 2013/06/18 18:41

 

androidadbandroidshell

在Linux下,ps是非常普通的命令:

ps -aux 查看所有正在运行的进程

ps | grep xxx 显示过滤指定名称的进程

可是以上的命令在Android上,都不起作用! What?!!!Android不是基于Linux系统的吗?对,准确来说,Android是Google基于Linux的内核改造出来的。那也意味着,Android是一个Linux的修改版,这样子也解析了同样的命令,不能执行的问题了。

对于前面提到的命令,我们可以这样子的命令来替代:

ps 可以查看所有正在运行的进程

ps xxx 显示过滤指定名称的进程

和原来的Linux相比,貌似更人性化了,或者说,功能简洁了许多,毕竟Android的toolbox是为适应大多数移动设备而设计的。

接着我们一起学习一下Android的ps命令参数: -t -x -P -p -c [pid|name]

  • -t 显示进程下的线程列表
  • -x 显示进程耗费的用户时间和系统时间,格式:(u:0, s:0),单位:秒(s)
  • -P 显示调度策略,通常是bg或fg,当获取失败将会是un和er
  • -p 显示进程的优先级和nice等级
  • -c 显示进程耗费的CPU时间 (可能不兼容Android 4.0以前的老版本系统)
  • [pid] 过滤指定的进程PID
  • [name] 过滤指定的进程NAME

和Linux的ps不同,Linux的ps命令可以这样子:ps -aux,Android上ps的参数并不能一起使用,如ps -txPc.

小提示: 内核根据进程的nice值决定进程需要多少处理器时间. nice值的取值范围是是: -20到20. 一个具有-20 的 nice 值的进程有很高的优先级. 一个 nice 值为 20 的进程的优先级则很低.  

本文由zhiweiofli编辑发布,转载请注明出处,谢谢。

 

查看android app 线程信息的命令

lipeil 2016-10-31 原文

参考:https://my.oschina.net/zhiweiofli/blog/138454

 
  1. ps | grep 'joyodream' 找到 app 的pid; joyodream为包名的一部分ps -t pid 查找指定pid的线程信息 例如:
  2.  
  3.  ps -t 14500360 手机

USER PID PPID VSIZE RSS WCHAN PC NAME
u0_a118 14500 375 2521896 137196 SyS_epoll_ 0000000000 S com.joyodream.bindtest
u0_a118 14506 14500 2521896 137196 do_sigtime 0000000000 S Signal Catcher
u0_a118 14507 14500 2521896 137196 poll_sched 0000000000 S JDWP
u0_a118 14508 14500 2521896 137196 futex_wait 0000000000 S ReferenceQueueD
u0_a118 14509 14500 2521896 137196 futex_wait 0000000000 S FinalizerDaemon
u0_a118 14510 14500 2521896 137196 futex_wait 0000000000 S FinalizerWatchd
u0_a118 14511 14500 2521896 137196 futex_wait 0000000000 S HeapTaskDaemon
u0_a118 14512 14500 2521896 137196 binder_thr 0000000000 S Binder_1
u0_a118 14513 14500 2521896 137196 binder_thr 0000000000 S Binder_2
u0_a118 14515 14500 2521896 137196 SyS_epoll_ 0000000000 S RenderThread
u0_a118 14517 14500 2521896 137196 futex_wait 0000000000 S mali-mem-purge
u0_a118 14518 14500 2521896 137196 kbase_read 0000000000 S mali-event-hnd
u0_a118 14519 14500 2521896 137196 futex_wait 0000000000 S mali-utility-wo
u0_a118 14520 14500 2521896 137196 futex_wait 0000000000 S mali-utility-wo
u0_a118 14521 14500 2521896 137196 futex_wait 0000000000 S mali-utility-wo
u0_a118 14522 14500 2521896 137196 futex_wait 0000000000 S mali-utility-wo
u0_a118 14523 14500 2521896 137196 futex_wait 0000000000 S mali-utility-wo
u0_a118 14524 14500 2521896 137196 futex_wait 0000000000 S mali-utility-wo
u0_a118 14525 14500 2521896 137196 futex_wait 0000000000 S mali-utility-wo
u0_a118 14526 14500 2521896 137196 futex_wait 0000000000 S mali-utility-wo
u0_a118 14527 14500 2521896 137196 futex_wait 0000000000 S mali-utility-wo
u0_a118 14528 14500 2521896 137196 futex_wait 0000000000 S mali-utility-wo
u0_a118 14529 14500 2521896 137196 futex_wait 0000000000 S mali-renderer
u0_a118 14530 14500 2521896 137196 futex_wait 0000000000 S mali-hist-dump
u0_a118 14531 14500 2521896 137196 futex_wait 0000000000 S ged-swd
u0_a118 14533 14500 2521896 137196 futex_wait 0000000000 S hwuiTask1

1+ 手机

u0_a100 19418 284 1609932 43208 ffffffff 00000000 S com.joyodream.bindtest
u0_a100 19424 19418 1609932 43208 ffffffff 00000000 S Heap thread poo
u0_a100 19425 19418 1609932 43208 ffffffff 00000000 S Heap thread poo
u0_a100 19426 19418 1609932 43208 ffffffff 00000000 S Heap thread poo
u0_a100 19427 19418 1609932 43208 ffffffff 00000000 S Signal Catcher
u0_a100 19428 19418 1609932 43208 ffffffff 00000000 S JDWP
u0_a100 19429 19418 1609932 43208 ffffffff 00000000 S ReferenceQueueD
u0_a100 19430 19418 1609932 43208 ffffffff 00000000 S FinalizerDaemon
u0_a100 19431 19418 1609932 43208 ffffffff 00000000 S FinalizerWatchd
u0_a100 19432 19418 1609932 43208 ffffffff 00000000 S HeapTrimmerDaem
u0_a100 19433 19418 1609932 43208 ffffffff 00000000 S GCDaemon
u0_a100 19434 19418 1609932 43208 ffffffff 00000000 S Binder_1
u0_a100 19435 19418 1609932 43208 ffffffff 00000000 S Binder_2
u0_a100 19438 19418 1609932 43208 ffffffff 00000000 S android.bg
u0_a100 19464 19418 1609932 43208 ffffffff 00000000 S RenderThread
u0_a100 19465 19418 1609932 43208 ffffffff 00000000 S AsyncQueryWorke
u0_a100 19470 19418 1609932 43208 ffffffff 00000000 S GL updater
u0_a100 19474 19418 1609932 43208 ffffffff 00000000 S hwuiTask1

一个Hellow world App,包含至少2个Binder线程(偶尔出现3个),FinalizerDaemon线程、FinalizerWatchd线程、RenderThread、主线程、ReferenceQueued、HeapTaskDaemon、SignalCatcher、GCDaemon、hwuiTask

 

 

 

 

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值