App调试的几个命令实践

1.logcat命令
这个命令最简单常用,可查看帮助

第一种事例:adb logcat > /sdcard/mylogcat.txt

第二种事例:adb logcat > D:/Temp/1.txt(1.txt必须存在,才能写入logcat内容)

第三种事例:

      adb shell

      logcat | grep "1302"

第四种事例:

      执行adb shell登到手机

cat /proc/进程id/task/线程id/comm

       cat /proc/28564/task/28599/comm

查看指定线程名称

第五种事例:

      执行adb shell登到手机

      logcat -v time -f /sdcard/locker.log *:W &

 


2.ANR 的 Trace文件
  /data/anr/traces.txt

 

 

2.top 命令

shell@cancro:/ $ top -t| grep POI

只显示线程名称为POI的数据

各进程(任务)的状态监控
PID 进程id
USER 进程所有者
PR 进程优先级
NI nice值。负值表示高优先级,正值表示低优先级
VIRT 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
RES 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
SHR 共享内存大小,单位kb

 

VSS- Virtual Set Size 虚拟耗用内存(包含共享库占用的内存)

 

RSS- Resident Set Size 实际使用物理内存(包含共享库占用的内存)

 

PSS- Proportional Set Size 实际使用的物理内存(比例分配共享库占用的内存)

 

USS- Unique Set Size 进程独自占用的物理内存(不包含共享库占用的内存)

 

一般来说内存占用大小有如下规律:VSS >= RSS >= PSS >= USS

 

 

 

User 35%, System 13%, IOW 0%, IRQ 0% // CPU占用率 
User 109 + Nice 0 + Sys 40 + Idle 156 + IOW 0 + IRQ 0 + SIRQ 1 = 306 // CPU使用情况 

PID CPU% S #THR VSS RSS PCY UID Name // 进程属性 
xx  xx% x   xx  xx  xx  xx  xx   xx 

CPU占用率: 
User    用户进程 
System  系统进程 
IOW IO等待时间 
IRQ 硬中断时间 

CPU使用情况(指一个最小时间片内所占时间,单位jiffies。或者指所占进程数): 
User    处于用户态的运行时间,不包含优先值为负进程 
Nice    优先值为负的进程所占用的CPU时间 
Sys 处于核心态的运行时间 
Idle    除IO等待时间以外的其它等待时间 
IOW IO等待时间 
IRQ 硬中断时间 
SIRQ    软中断时间 

进程属性: 
PID 进程在系统中的ID 
CPU%    当前瞬时所以使用CPU占用率 
S   进程的状态,其中S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值是负数。 
#THR    程序当前所用的线程数 
VSS Virtual Set Size 虚拟耗用内存(包含共享库占用的内存) 
RSS Resident Set Size 实际使用物理内存(包含共享库占用的内存) 
PCY OOXX,不知道什么东东 
UID 运行当前进程的用户id 
Name    程序名称android.process.media 

// ps:内存占用大小有如下规律:VSS >= RSS >= PSS >= USS 
// PSS  Proportional Set Size 实际使用的物理内存(比例分配共享库占用的内存) 
// USS  Unique Set Size 进程独自占用的物理内存(不包含共享库占用的内存)

 

 

 

 

 

 

 

 

静态查看一个进程的详细内存占用

pmap命令: pmap pid

 

 

posted on 2017-03-21 21:05  kenny.wmh  阅读(255)  评论(0编辑  收藏  举报

导航