首先都要先通过 adb 连接到安卓设备,adb shell 进入系统
方法一:procrank 命令
PID Vss Rss Pss Uss cmdline
955 807836K 57864K 36529K 33872K com.gitvdemo.video
606 691244K 43668K 26172K 25188K com.android.systemui
435 774656K 47488K 24661K 21728K system_server
12484 735784K 42804K 21658K 19704K com.xhc.xhcsmarthomemetv
1448 702640K 31748K 12624K 11764K com.lz.smart.music
92 680604K 42212K 12601K 6640K zygote
1243 749056K 33024K 12277K 10452K com.iflytek.xiri
4900 711984K 28460K 9254K 7952K com.xhc.gateway
94 58968K 12816K 7823K 4948K /system/bin/mediaserver
620 707292K 27180K 7734K 6400K com.android.inputmethod.latin
1362 790960K 24460K 6870K 6112K com.xhc.comm
633 709560K 25292K 6542K 5384K com.android.phone
925 705876K 26740K 6223K 4856K com.dangbeimarket:bdservice_v1
1713 701716K 25672K 6049K 4624K com.dangbeimarket
647 699276K 24096K 5927K 5148K xhc.smarthome.business
776 693756K 24180K 5808K 4888K android.process.media
1021 700848K 22992K 5596K 4828K com.xiaobaifile.tv
713 693608K 23452K 5481K 4660K android.process.acore
1197 704732K 24352K 4982K 2272K .pushdaemonservice
1865 707024K 24956K 4863K 3464K com.dangbeimarket:appuninstallMonitor
1746 700580K 24084K 4471K 3224K com.dangbeimarket:dangbei_web
939 702048K 19916K 3784K 3148K com.me.mediaplay
执行完命令之后,系统会打印上面的这些信息
PID :表示进程 id 号
VSS - Virtual Set Size 虚拟耗用内存(包含共享库占用的内存)是单个进程全部可访问的地址空间
RSS - Resident Set Size 实际使用物理内存(包含共享库占用的内存)是单个进程实际占用的内存大小,对于单个共享库, 尽管无论多少个进程使用,实际该共享库只会被装入内存一次。
PSS - Proportional Set Size 实际使用的物理内存(比例分配共享库占用的内存)
USS - Unique Set Size 进程独自占用的物理内存(不包含共享库占用的内存)USS 是一个非常非常有用的数字, 因为它揭示了运行一个特定进程的真实的内存增量大小。如果进程被终止, USS 就是实际被返还给系统的内存大小。
USS 是针对某个进程开始有可疑内存泄露的情况,进行检测的最佳数字。怀疑某个程序有内存泄露可以查看这个值是否一直有增加
方法二:dumpsys meminfo 命令
root@rksdknew:/ # dumpsys meminfo
dumpsys meminfo
Applications Memory Usage (kB):
Uptime: 11090780 Realtime: 11090767
Total PSS by process:
36454 kB: com.gitvdemo.video (pid 955)
26061 kB: com.android.systemui (pid 606)
24545 kB: system (pid 435)
21550 kB: com.xhc.xhcsmarthomemetv (pid 12484 / activities)
12522 kB: com.lz.smart.music (pid 1448)
12453 kB: zygote (pid 92)
12158 kB: com.iflytek.xiri (pid 1243)
9187 kB: com.xhc.gateway (pid 4900)
7798 kB: mediaserver (pid 94)
7617 kB: com.android.inputmethod.latin (pid 620)
6793 kB: com.xhc.comm (pid 1362)
6439 kB: com.android.phone (pid 633)
6120 kB: com.dangbeimarket:bdservice_v1 (pid 925)
5942 kB: com.dangbeimarket (pid 1713)
5827 kB: xhc.smarthome.business (pid 647)
5702 kB: android.process.media (pid 776)
5511 kB: com.xiaobaifile.tv (pid 1021)
5375 kB: android.process.acore (pid 713)
4881 kB: .pushdaemonservice (pid 1197)
4741 kB: com.dangbeimarket:appuninstallMonitor (pid 1865)
4415 kB: com.dangbeimarket:dangbei_web (pid 1746)
Total PSS by OOM adjustment:
37085 kB: Native
12453 kB: zygote (pid 92)
7798 kB: mediaserver (pid 94)
2193 kB: .pushdaemonservice (pid 1218)
2179 kB: drmserver (pid 93)
1647 kB: smbd (pid 1925)
1435 kB: surfaceflinger (pid 91)
1339 kB: nmbd (pid 1930)
979 kB: wpa_supplicant (pid 921)
770 kB: netd (pid 88)
597 kB: vold (pid 86)
527 kB: smbd (pid 1927)
441 kB: /init (pid 1)
433 kB: keystore (pid 96)
430 kB: rild (pid 90)
355 kB: uSDKServer_2.0.0_2014051415 (pid 1482)
336 kB: xirisvc2.3.0 (pid 98)
299 kB: displayd (pid 87)
276 kB: adbd (pid 105)
275 kB: adb (pid 14894)
248 kB: ueventd (pid 60)
236 kB: dhcpcd (pid 1059)
24545 kB: System
24545 kB: system (pid 435)
43293 kB: Persistent
26061 kB: com.android.systemui (pid 606)
6439 kB: com.android.phone (pid 633)
5827 kB: xhc.smarthome.business (pid 647)
3251 kB: com.iflytek.xiri2.system (pid 659)
1715 kB: com.iflytek.showcomesettings (pid 666)
21550 kB: Foreground
21550 kB: com.xhc.xhcsmarthomemetv (pid 12484 / activities)
1637 kB: Visible
1637 kB: com.android.smspush (pid 732)
26394 kB: Perceptible
7617 kB: com.android.inputmethod.latin (pid 620)
6793 kB: com.xhc.comm (pid 1362)
5511 kB: com.xiaobaifile.tv (pid 1021)
4741 kB: com.dangbeimarket:appuninstallMonitor (pid 1865)
1732 kB: com.ehome.mp (pid 1378)
6120 kB: A Services
6120 kB: com.dangbeimarket:bdservice_v1 (pid 925)
97301 kB: B Services
36454 kB: com.gitvdemo.video (pid 955)
12522 kB: com.lz.smart.music (pid 1448)
12158 kB: com.iflytek.xiri (pid 1243)
9187 kB: com.xhc.gateway (pid 4900)
5942 kB: com.dangbeimarket (pid 1713)
4881 kB: .pushdaemonservice (pid 1197)
4415 kB: com.dangbeimarket:dangbei_web (pid 1746)
3682 kB: com.me.mediaplay (pid 939)
2866 kB: android.rockchip.update.service (pid 843)
2637 kB: android:userExpericenceService (pid 1511)
2557 kB: com.dangbeimarket:MonitorService (pid 1780)
28861 kB: Cached
5702 kB: android.process.media (pid 776)
5375 kB: android.process.acore (pid 713)
3535 kB: com.android.gallery3d (pid 12071)
3443 kB: com.android.deskclock (pid 1649)
3287 kB: com.android.launcher3 (pid 12104)
2082 kB: com.android.keychain (pid 12089)
1941 kB: com.android.musicfx (pid 12056)
1759 kB: com.bc.InitApp (pid 881)
1737 kB: com.svox.pico (pid 12500)
Total PSS by category:
87196 kB: Dalvik
59666 kB: .so mmap
41691 kB: .dex mmap
39804 kB: Dalvik Other
38077 kB: Unknown
8012 kB: .apk mmap
7235 kB: Other mmap
2268 kB: Native
1356 kB: .ttf mmap
964 kB: Stack
273 kB: Other dev
156 kB: .jar mmap
84 kB: Ashmem
4 kB: Cursor
0 kB: code mmap
0 kB: image mmap
0 kB: Graphics
0 kB: GL
0 kB: Memtrack
Total RAM: 1048576 kB
Free RAM: 575109 kB (28861 cached pss + 271964 cached + 274284 free)
Used RAM: 293193 kB (257925 used pss + 12784 buffers + 284 shmem + 22200 slab)
Lost RAM: 180274 kB
Tuning: 64 (large 384), oom 122880 kB, restore limit 40960 kB (high-end-gfx)
打印出以上信息
如果需要查看某个进程的内存情况,可以加入程序的包名或者是进程 id 号
dumpsys meminfo com.xhc.xhcsmarthomemetv
root@rksdknew:/ # dumpsys meminfo com.xhc.xhcsmarthomemetv
dumpsys meminfo com.xhc.xhcsmarthomemetv
Applications Memory Usage (kB):
Uptime: 11432837 Realtime: 11432824
** MEMINFO in pid 12484 [com.xhc.xhcsmarthomemetv] **
Pss Private Private Swapped Heap Heap Heap
Total Dirty Clean Dirty Size Alloc Free
------ ------ ------ ------ ------ ------ ------
Native Heap 0 0 0 0 10644 3886 265
Dalvik Heap 12523 12468 0 0 14436 11891 2545
Dalvik Other 1785 1676 0 0
Stack 20 20 0 0
Other dev 4 0 4 0
.so mmap 1347 584 164 0
.apk mmap 193 0 0 0
.ttf mmap 603 0 332 0
.dex mmap 2391 16 1828 0
Other mmap 53 8 0 0
Unknown 2635 2628 0 0
TOTAL 21554 17400 2328 0 25080 15777 2810
Objects
Views: 158 ViewRootImpl: 1
AppContexts: 4 Activities: 1
Assets: 2 AssetManagers: 2
Local Binders: 11 Proxy Binders: 15
Death Recipients: 0
OpenSSL Sockets: 0
SQL
MEMORY_USED: 0
PAGECACHE_OVERFLOW: 0 MALLOC_SIZE: 0
Asset Allocations
zip:/system/app/EHOMETV.apk:/resources.arsc: 250K
这个进程的内存信息就会全部打印出来
如果通过 dumpsys meminfo + 进程 id
那就需要先获取进程的 id
通过 ps 命令查看所有进程的 id
打印出来的 PID 就是进程的 id 号
安卓系统开发中,或许会出现多个应用程序协同合作的情况,出了问题,莫名系统卡死,很有可能就是某个程序出现一直占用内存不释放,
越用越多,最后导致系统自动杀死等级低的应用程序,比如软键盘,或者其他的开发程序,用来释放内存
如果出现这个情况,就可以通过以上方式,查看哪个应用程序的内存越来越大,然后找到问题。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于