android 内存分析

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的统计原则决定杀死哪个进程。

你可能感兴趣的:(android 内存分析)