Android性能排查常用命令

前言

android基于Linux,所以android一些常用的命令还是需要掌握的,可以方便我们更好的理解android系统。楼主也经常忘记这些命令的意义,趁这次机会,比较全面的总结一下。

1.ps

首先,第一个是ps命令,这个命令不多说,大家应该都清楚,这里只强调一个不经常使用的命令。

ps -T  [pid]

这个命令可以打印出当前进程的所有线程。java线程映射在原生的linux系统之上。
下面以我的手机为例,打印的线程。
在这里插入图片描述
从中大家可以看到,PID可以理解为线程ID,PPID可以理解为父线程的线程id,与linux的进程的对应关系是一样的,只是由进程改为了线程。这里可以用更专业的tid和ttid来使用
从这个里面可以看出很多有意思的东西。
首先,10138可以看出是所有线程的父线程,也就是我们的主线程,可以看出和pid相等。类似init进程是所有进程的父进程。
其次,还有以下几个娘胎里面带着的线程

  • JIT,这个不需要解释吧,java著名的即时编译(just-in-time)
  • Signal Catcher(ANR等相关处理就在这里,这个知识点很有意思,大家可以参考Android trace文件抓取原理
    或者gityuan的java层次trace文件和native层trace文件。),
  • JDWP(调试专用),
  • 两个binder线程池(想想哪两个,ApplicationThread肯定有一个,还有一个是和WMS交互的)。
  • RenderThread,这个不用解释吧?android渲染线程,还记得三缓冲吗?

大家还可以发现,主线程的pid就是进程id,而主线程的父线程的ppid就是645。而645就是android大名鼎鼎的zygote进程。
这里面的线程,除了blockcannary和leakcannary相关线程,其他每个都涉及很多知识点,我们后面的博客再来讨论。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值