由于linux内核和native service使用的内存在settings中统计不出来,因此对于分析内存相关问题时,使用procrank命令则能比较清晰的获取每个进程占用的内存资源
$adb shell procrank
PID Vss Rss Pss Uss cmdline
159 49668K 39664K 19857K 17016K system_server
236 29688K 29676K 11966K 10500K com.android.phone
274 29056K 29036K 11682K 9936K com.google.process.gapps
VSS - Virtual Set Size 虚拟耗用内存(包含共享库占用的内存)
RSS - Resident Set Size 实际使用物理内存(包含共享库占用的内存)
PSS - Proportional Set Size 实际使用的物理内存(比例分配共享库占用的内存)
USS - Unique Set Size 进程独自占用的物理内存(不包含共享库占用的内存)
使用adb shell dumpsys meminfo或ddms工具的dump device state也能统计内存信息
Applications Memory Usage (kB):
Uptime: 10092666 Realtime: 143044833