为什么我的应用程序在使用比VM预算更多的内存后没有崩溃?

时间:2011-11-22 22:23:51

标签: android

我在Nexus S上运行我的应用程序,每个应用程序内存限制为32M字节。

我运行命令检查应用程序的内存使用情况:

adb -d shell dumpsys meminfo com.mycomp.myapp

Applications Memory Usage (kB):
Uptime: 1128469 Realtime: 1128466

** MEMINFO in pid 841 [com.mycomp.myapp] **
                native   dalvik    other    total
        size:    29148     9415      N/A    38563
   allocated:    20259     6273      N/A    26532
        free:      379     3142      N/A     3521
       (Pss):     9253     2049    25338    36640
(shared dirty):     1984     1520     7836    11340
(priv dirty):     9180      960    16212    26352

Objects
       Views:        0        ViewRoots:        0
 AppContexts:        0       Activities:        0
      Assets:       24    AssetManagers:       24
 Local Binders:       11    Proxy Binders:       23
 Death Recipients:        1
 OpenSSL Sockets:        0

SQL
           heap:      173         MEMORY_USED:      173
 PAGECACHE_OVERFLOW:       28         MALLOC_SIZE:       50

 DATABASES
  pgsz     dbsz   Lookaside(b)  Dbname
     1       14             61  webview.db
     1        8             53  webviewCache.db

从上面的内存报告中,我的应用已经使用了38563K内存,已经超过了32M VM预算。但为什么应用程序还没有崩溃呢?

1 个答案:

答案 0 :(得分:2)

查看“已分配”行,它低于32M限制。