Android系统adb命令查看CPU与内存使用率

时间:2024-03-07 19:43:32
 1. 打开终端,进入上述目录,如下图所示:
                                            
       2. 输入adb shell,打开adb命令行,如下图所示:
                                         
       3. 查看cpu使用情况:
       输入命令:top -m 10 -s cpu(-m显示最大数量,-s 按指定行排序),如下图所示:
                             
 
  1. 参数含义:  
  2. PID  : progress identification,应用程序ID  
  3. S    : 进程的状态,其中S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值是负数  
  4. #THR : 程序当前所用的线程数  
  5. VSS  : Virtual Set Size虚拟耗用内存(包含共享库占用的内存)  
  6. RSS  : Resident Set Size实际使用物理内存(包含共享库占用的内存)  
  7. PCY  : 前台(fg)和后台(bg)进程  
  8. UID  : User Identification,用户身份ID  
  9. Name : 应用程序名称  
(注意第一列的pid,使用pid值可以查看当前程序的内存使用情况。)
       4. 查看指定程序内存使用情况:
       输入命令:dumpsys meminfo pid,比如查看手机安装的360安全卫士,那么实际命令应该为:dumpsys meminfo 3253,如下图所示:
                          
[plain] view plain copy
 
  1. 参数含义:  
  2. dalvik : dalvik使用的内存  
  3. native : native堆上的内存,指C\C++堆的内存(android 3.0以后bitmap就是放在这儿)  
  4. other  : 除了dalvik和native的内存,包含C\C++非堆内存······  
  5. Pss    : 该内存指将共享内存按比例分配到使用了共享内存的进程  
  6. heap alloc    : 已使用的内存  
  7. heap free     : 空闲的内存  
  8. share dirty   : 共享,但有不能被换页出去的内存  
  9. private dirty : 非共享,又不能被换页出去的内存(比如linux系统中为了提高分配内存速度而缓冲的小对象,即使你的进程已经退出,该内存也不会被释放)  
5. 使用ctrl + c,退出adb命令行。

Usage: top [ -m max_procs ] [ -n iterations ] [ -d delay ] [ -s sort_column ] [-t ] [ -h ]

-m num Maximum number of processes to display.   // 最多显示多少个进程
-n num Updates to show before exiting. // 刷新次数
-d num Seconds to wait between updates.  // 刷新间隔时间(默认5秒)
-s col Column to sort by (cpu,vss,rss,thr).  // 按哪列排序 
-t Show threads instead of processes.   // 显示线程信息而不是进程 
-h Display this help screen.  // 显示帮助文档 

  1. User 15%, System 12%, IOW 0%, IRQ 0% // CPU占用率 
  2. User 468 + Nice 125 + Sys 481 + Idle 2783 + IOW 1 + IRQ 0 + SIRQ 2 = 3860 // CPU使用情况 
  3.  
  4. PID   PR   CPU% S  #THR     VSS         RSS    PCY       UID             Name // 进程属性 
  5. 284   1     16% S         61     473068K  41488K   fg       media    /system/bin/mediaserver
  6.  
  7. CPU占用率: 
  8. User    用户进程 
  9. System  系统进程 
  10. IOW IO等待时间 
  11. IRQ 硬中断时间 
  12.  
  13. CPU使用情况(指一个最小时间片内所占时间,单位jiffies。或者指所占进程数): 
  14. User    处于用户态的运行时间,不包含优先值为负进程 
  15. Nice    优先值为负的进程所占用的CPU时间 
  16. Sys 处于核心态的运行时间 
  17. Idle    除IO等待时间以外的其它等待时间 
  18. IOW IO等待时间 
  19. IRQ 硬中断时间 
  20. SIRQ    软中断时间 
  21.  
  22. 进程属性: 
  23. PID 进程在系统中的ID 
  24. CPU%    当前瞬时所以使用CPU占用率 
  25. S   进程的状态,其中S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值是负数。 
  26. #THR    程序当前所用的线程数 
  27. VSS Virtual Set Size 虚拟耗用内存(包含共享库占用的内存) 
  28. RSS Resident Set Size 实际使用物理内存(包含共享库占用的内存) 
  29. PCY OOXX,不知道什么东东 
  30. UID 运行当前进程的用户id 
  31. Name    程序名称android.process.media 
  32.  
  33. // ps:内存占用大小有如下规律:VSS >= RSS >= PSS >= USS 
  34. // PSS  Proportional Set Size 实际使用的物理内存(比例分配共享库占用的内存) 
  35. // USS  Unique Set Size 进程独自占用的物理内存(不包含共享库占用的内存)