牛骨文教育服务平台(让学习变的简单)
博文笔记

查看android app 线程信息的命令

创建时间:2018-10-12 投稿人: 浏览次数:286

 

 

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编辑发布,转载请注明出处,谢谢。

 

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


 

 

 

 

声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。