如何获取Android手机的内存信息?

By
写代码

虽然不是在研发部门,但是偶尔还是要dump一些手机的内存、CPU信息,自己看或者给RD们提供信息,所以对于Android一些基本的adb命令还是要熟悉一下。

查看内存用命令:
1、top
2、ps
3、procrank
4、dumpsys meminfo

四个命令都是shell命令,所以如果直接运行需要adb shell。嵌入程序,如果使用ddmlib来驱动他们,可以使用IDevice.executeShellCommand(command)。

输入这些命令之后,会发现得到的结果是所有进程……一句一句来看是很麻烦的事。所以需要使用一些方法处理一下……

之前讲过android手机的shell是半残,好些有用的命令都不支持,不过这次要用到的grep除外。在以上四个命令后面添加上package Name即可,例如

Procrank com.tencent.mobileqq,即可过滤出来所有包含此字段的数据。

至于为什么有四个命令,是因为他们分工和使用场合不同。

前两个命令只能查到VSS RSS内存占用信息,而后面两个命令可以查出 PSS USS内存占用。
dumpsys meminfo 可以查出native和dalvik分别占用多少内存,dumpsys 用来给出手机中所有应用程序的信息,并且也会给出现在手机的状态。

VSS- Virtual Set Size 虚拟耗用内存(包含共享库占用的内存)
RSS- Resident Set Size 实际使用物理内存(包含共享库占用的内存)
PSS- Proportional Set Size 实际使用的物理内存(比例分配共享库占用的内存)
USS- Unique Set Size 进程独自占用的物理内存(不包含共享库占用的内存)
一般来说内存占用大小有如下规律:VSS >= RSS >= PSS >= USS

附:

dumpsys [Option]
option可以为:
dumpsysmeminfo 显示内存信息
cpuinfo 显示CPU信息
account 显示accounts信息
activity 显示所有的activities的信息
window 显示键盘,窗口和它们的关系
wifi 显示wifi信息

Comments: 11

  1. 最近最常说的就是虽然不是XXXX。但是

    2014年06月18日
  2. 在有关手机类公司上班?

    2014年06月18日
  3. 最近都是 Java 之类的,axiu 的公司是手机类开发么?

    @zwwooooo 2014年06月18日
    • @zwwooooo 其实公司主业务是更底层一点的

      @venmax 2014年06月19日
  4. 你这是转型做android了

    @soolby 2014年06月19日
  5. 能知道这些的还真是很偏

    2014年06月21日
  6. axiu你在手机公司么? :eek:

    2014年06月22日
  7. 换个友链可好?

    2014年06月24日

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*

:razz: