1. dumpsys 的用法
命令格式:dumpsys [options]
options的内容有以下几种:
- meminfo 显示内存信息
- cpuinfo 显示CPU信息
- account 显示accounts信息
- activity 显示所有的activities的信息
- window 显示键盘,窗口和它们的关系
- wifi 显示wifi信息
2. watch 的用法
watch用来周期性的检测指定命令的输出结果。
命令格式:watch [options][cmd]
options的内容有以下几种:
- -n或–interval watch
来指定检测的间隔时间, 缺省每2秒检测一下。 - -d或–differences
会高亮显示变化的区域。 而-d=cumulative选项会把变动过的地方(不管最近的那次有没有变动)都高亮显示出来。 - -t 或-no-title
会关闭watch命令在顶部的时间间隔, 命令以及当前时间的输出。
例如:watch -n 1 -d ps
3. 使用watch和dumpsys检测指定进程的内存信息
watch -n 1 -d dumpsys meminfo PID
结果参数含义:
- Pss (Proportional Size), 实际使用物理内存,包含了按比例使用共享库所占用的内存,比如有9k的共享库被3个进程使用,按照Pssf方式只有9/3k被统计进去。
- Private Dirty,进程独占的内存,内存已经被本进程修改过,只能被自己进程使用。
- Private clean - 进程独占的内存,内存是映射过来的,没有做修改,可以置换给到其他进程使用。
- Rss (Resident Set Size), 实际使用物理内存,包含了使用共享库占用的内存,例如有9k的共享库被3个进程使用,按照Rss方式9K将全被统计进去。
- Dalvik Heap,Java对象分配的占据内存。
- Native Heap,Native代码分配的内存。
- Stack,栈内存。
- .so mmap,C库代码占用的内存。
- Other mmap, 其它文件占用的内存。
- Graphics, GPU使用的内存。
android会将内存占用过大的进程杀死,按照Pss的统计原则决定杀死哪个进程。