现在的位置: 首页 > 综合 > 正文

循环不断打印出Android系统中某个进程的内存使用情况

2013年01月11日 ⁄ 综合 ⁄ 共 1132字 ⁄ 字号 评论关闭

前言:

由于移动设备的内存、CPU、GPU资源较为有限,在调试Android系统或应用软件的时候,经常要了解内存占用的情况,所以dumpsys是经常用到。

而为了更准确的了解各个时刻的内存状况,可以配合Linux循环语句while do done来达到循环不断的打印出内存的实时占用情况。

方法:

首先,可以如下打印出Android系统中某个进程的内存使用情况:

 $ adb shell dumpsys meminfo com.android.launcher

输出了非常详尽的内存使用情况:

Applications Memory Usage (kB):
Uptime: 270233 Realtime: 270228

** MEMINFO in pid 2783 [com.android.launcher] **
                         Shared  Private     Heap     Heap     Heap
                   Pss    Dirty    Dirty     Size    Alloc     Free
                ------   ------   ------   ------   ------   ------
       Native        0        0        0    18100     6470      357
       Dalvik    23188     5072    23096    31944    21599    10345
       Cursor        0        0        0                           
       Ashmem        0        0        0                           
    Other dev    25728     1072     1492                           
     .so mmap     1508     2156     1036                           
    .jar mmap        0        0        0                           
    .apk mmap      377        0        0                           
    .ttf mmap      345        0        0                           
    .dex mmap     1583        0        0                           
   Other mmap      150       16      116                           
      Unknown     5500      424     5496                           
        TOTAL    58379     8740    31236    50044    28069    10702
 
 Objects
               Views:      341         ViewRootImpl:        1
         AppContexts:       35           Activities:        1
              Assets:        5        AssetManagers:        5
       Local Binders:       17        Proxy Binders:       35
    Death Recipients:        0
     OpenSSL Sockets:        0
 
 SQL
         MEMORY_USED:     1104
  PAGECACHE_OVERFLOW:     1011          MALLOC_SIZE:       62
 
 DATABASES
      pgsz     dbsz   Lookaside(b)          cache  Dbname
         4      968             95        9/24/10  /data/user/0/com.android.launcher/databases/launcher.db

配合Linux shell脚本语句while do done实现循环调用(间隔时间是一秒):

$ while true; do adb shell dumpsys meminfo com.android.launcher; sleep 1; done

间隔时间还可以这样表示:

sleep 1      睡眠1秒
sleep 1s    睡眠1秒
sleep 1m   睡眠1分
sleep 1h    睡眠1小时

抱歉!评论已关闭.