• 周五. 5月 2nd, 2025

Android procrank 跟踪进度内存状态

Android procrank 跟踪进度内存状态

Procrank 是 Android 自带一款调试工具,运行在设备侧的 shell 环境下,用来输出进程的 内存快照,便于有效的观察进程的内存占用情况。因为它需要遍历/proc下的所有进程获取内存占用情况

VSS – Virtual Set Size 虚拟耗用内存(包含共享库占用的内存)
RSS – Resident Set Size 实际使用物理内存(包含共享库占用的内存)
PSS – Proportional Set Size 实际使用的物理内存(比例分配共享库占用的内存)
USS – Unique Set Size 进程独自占用的物理内存(不包含共享库占用的内存)

注意:

USS 大小代表只属于本进程正在使用的内存大小,进程被杀死后会被完整回收;VSS/RSS 包含了共享库使用的内存,对查看单一进程内存状态没有参考价值;PSS 是按照比例将共享内存分割后,某单一进程对共享内存区的占用情况。

procrank帮助信息

执行 procrank,前需要先让终端获取到 root 权限su
命令格式:
procrank [ -W ] [ -v | -r | -p | -u | -h ]常用指令说明 :

  • − -v:按照 VSS 排序
  • −  -r:按照 RSS 排序
  • −  -p:按照 PSS 排序
  • −  -u:按照 USS 排序
  • −  -R:转换为递增[递减]方式排序
  • −  -w:只显示 working set 的统计计数
  • −  -W:重置 working set 的统计计数
  • −  -h:帮助
    示例:
    − 输出内存快照:
    procrank
    − 按照 VSS 降序排列输出内存快照:procrank –v
    默认 procrank 输出是通过 PSS 排序。

 

查看指定进程的内存占用状态,命令格式如下:

procrank | grep [cmdline | PID]

其中 cmdline 表示需要查找的应用程序名,PID 表示需要查找的应用进程。 输出 systemUI 进程的内存占用状态:

procrank | grep “com.android.systemui”

或者 :

procrank | grep 3396

procrank 命令输出结果如下:

1|root:/ # procrank
PID Vss Rss Pss Uss cmdline
380 2195880K 210712K 111133K 67400K system_server
555 1577804K 91520K 48282K 41864K com.android.systemui
146 1561656K 63080K 47628K 42036K zygote
868 1587984K 69500K 25414K 18480K com.android.launcher
145 2122596K 73552K 23428K 10972K zygote64
813 1552512K 50756K 12568K 8428K com.android.inputmethod.latin
1012 1551924K 50104K 11133K 6248K android.process.media
569 1555472K 46432K 9707K 5464K com.android.tv.settings
1049 1541296K 43908K 8472K 4936K com.android.providers.calendar
993 1542664K 43432K 8268K 4464K android.rockchip.update.service
189 54972K 13664K 7566K 4676K /system/bin/cameraserver
960 1540440K 40684K 7091K 4004K com.rockchip.devicetest
826 1539688K 39208K 6800K 3900K com.cghs.stresstest
778 1539192K 39236K 5932K 2372K android.ext.services
196 64364K 10036K 4590K 2760K /system/bin/mediaserver
1089 9500K 4880K 3977K 3940K procrank
188 29336K 6400K 3597K 3132K /system/bin/audioserver
194 37540K 8232K 3279K 1812K /system/bin/mediadrmserver
149 77988K 5700K 3223K 2804K /system/bin/surfaceflinger
195 41596K 5852K 2327K 1616K media.extractor
193 25116K 4856K 1976K 1472K media.codec
182 14796K 2964K 1824K 1748K /system/bin/logd
150 16076K 3636K 1489K 1256K /system/bin/vold
190 12984K 4100K 1436K 1060K /system/bin/drmserver
197 23668K 3192K 1378K 1224K /system/bin/netd
590 11808K 2336K 1297K 1252K /system/bin/sdcard
1 10612K 1632K 1234K 984K /init
192 12616K 3144K 1173K 992K /system/bin/keystore
198 12304K 2808K 932K 764K /system/bin/gatekeeperd
191 9704K 2328K 838K 708K /system/bin/installd
147 8916K 1888K 775K 716K /system/bin/lmkd
912 5320K 768K 756K 756K /system/bin/mdnsd
185 13112K 772K 732K 728K /sbin/adbd
143 13256K 2024K 697K 604K /system/bin/displayd
123 5972K 1084K 687K 440K /sbin/ueventd
148 9140K 1944K 678K 600K /system/bin/servicemanager
1083 7700K 1596K 576K 468K /system/bin/sh
199 8256K 1652K 561K 500K /system/xbin/perfprofd
1080 7700K 1576K 560K 452K /system/bin/sh
184 7700K 1572K 558K 452K /system/bin/sh
142 6412K 516K 496K 496K /sbin/healthd
144 7660K 1424K 453K 408K /system/bin/tee-supplicant
169 9884K 1928K 386K 56K /system/bin/debuggerd64
168 5076K 1552K 385K 60K /system/bin/debuggerd
179 9884K 644K 299K 44K debuggerd64:signaller
180 5076K 520K 243K 44K debuggerd:signaller

可以编写循环脚本获取指定需要的进程:

#!/bin/bash
while true;do
adb shell procrank | grep “com.android.systemui” sleep 1
done

 

或者直接输入命令:

1|root:/ # while true;
> do procrank |grep “com.android.systemui”
> sleep 1
> done
555 1577804K 91520K 48281K 41864K com.android.systemui
555 1577804K 91520K 48281K 41864K com.android.systemui
555 1577804K 91520K 48281K 41864K com.android.systemui
555 1577804K 91520K 48281K 41864K com.android.systemui
555 1577804K 91520K 48281K 41864K com.android.systemui
555 1577804K 91520K 48281K 41864K com.android.systemui
555 1577804K 91520K 48281K 41864K com.android.systemui
555 1577804K 91520K 48281K 41864K com.android.systemui
555 1577804K 91520K 48281K 41864K com.android.systemui
555 1577804K 91520K 48281K 41864K com.android.systemui
555 1577804K 91520K 48281K 41864K com.android.systemui

发表评论

您的电子邮箱地址不会被公开。