我如何知道在任何给定时刻我有多少堆内存?

时间:2012-01-25 12:25:40

标签: android memory-leaks

我有一个持续死亡的过程,声称内存不足,但我怀疑这是一个红色的鲱鱼,我正在吃掉它在其他地方需要的记忆。我很好奇我可以选择实时使用和发布内存。亚行是否有我可以观看的某种显示器?

TIA

2 个答案:

答案 0 :(得分:4)

我发现命令行 adb shell dumpsys meminfo'您的应用包名称'很有用。如果要查看所有流程的信息,请使用 adb shell dumpsys meminfo 。将输出传递给文本文件可能是值得的,因为有很多形式的数据:

** MEMINFO in pid 5527 [com.sec.android.widgetapp.weatherclock] **
                    native   dalvik    other    total
            size:     2868     5767      N/A     8635
       allocated:     2861     2891      N/A     5752
            free:        6     2876      N/A     2882
           (Pss):      532       80     2479     3091
  (shared dirty):      932     2004     6060     8996
    (priv dirty):      512       36     1872     2420

 Objects
           Views:        0        ViewRoots:        0
     AppContexts:        0       Activities:        0
          Assets:        3    AssetManagers:        3
   Local Binders:        2    Proxy Binders:        8
Death Recipients:        0
 OpenSSL Sockets:        0


 SQL
               heap:        0         MEMORY_USED:        0
 PAGECACHE_OVERFLOW:        0         MALLOC_SIZE:        0

从通过USB端口连接的真实设备返回

答案 1 :(得分:1)

我在Eclipse中使用DDMS透视图,它具有用于此类监视的“堆”选项卡。我不确定是否有其他IDE可以使用的命令行替代方案。