【问题标题】:How to get the available/free memory from ADB?如何从 ADB 获取可用/空闲内存?
【发布时间】:2014-04-03 16:21:32
【问题描述】:

我试过adb shell top,但它提供了太多详细信息。

我需要的只是总可用内存。如何通过亚行获取?

【问题讨论】:

  • here is good 讨论如何解释这些值 - 以及获得“空闲”内存量的其他选项

标签: android adb


【解决方案1】:

为什么不内置::

$ adb shell "cat /proc/meminfo"

大多数手机缺少free 实用程序,更不用说buzybox。另一方面,/proc/meminfo 是 Linux 不可或缺的一部分。

【讨论】:

  • 得到这个输出后,free内存可以通过添加MemFreeSwapFree来计算
  • watch -n 0.5 adb shell "cat /proc/meminfo" 这可以让这条评论更有用
【解决方案2】:

到目前为止我发现的最“干净”的方式是adb shell vmstat

它给出的信息如下:

procs  memory                       system          cpu
 r  b    free mapped   anon   slab    in   cs  flt  us ni sy id wa ir
 1  0   99120  55400 618680  25600  2207 4089    0   6  0  9 84  0  0

其中,99120 是以 KB 为单位的空闲内存。

【讨论】:

  • 不完全是,由于缓存和缓冲区可以在需要时擦除,因此可用内存和可用内存之间存在差异。 vmstat 显示“免费”而不是总可用。 /proc/meminfoMemAvailable 列是一个更好的描述符。我的 android 开发板有 1GB 的 RAM,vmstat 显示大约 256MB 可用空间。 /proc/meminfo 显示相同的 256MB 可用空间,但显示大约 650MB 实际上可用供程序使用。
【解决方案3】:

你也可以看看dumpsys

adb shell dumpsys meminfo

示例输出

Applications Memory Usage (in Kilobytes):
Uptime: 466195106 Realtime: 1351644497

Total PSS by process:
    358,901K: org.mozilla.firefox (pid 28883 / activities)
...
...
...

Total PSS by OOM adjustment:
    420,346K: Native
        125,116K: surfaceflinger (pid 734)
         43,238K: logd (pid 488)
         20,419K: mm-qcamera-daemon (pid 3307)
...
...
...
Total PSS by category:
    649,878K: Native
    407,027K: Dalvik
    241,132K: Gfx dev
    178,217K: Unknown
    174,912K: GL mtrack
    161,148K: EGL mtrack
    129,137K: .art mmap
     96,374K: Dalvik Other
     91,936K: .apk mmap
     67,291K: .dex mmap
     63,269K: .so mmap
     34,888K: Stack
     25,226K: .oat mmap
      5,967K: Other mmap
      1,617K: Other dev
      1,439K: Ashmem
        894K: .jar mmap
         68K: .ttf mmap
          8K: Cursor
          0K: Other mtrack

Total RAM: 3,868,864K (status normal)
 Free RAM: 1,114,394K (  907,794K cached pss +    38,964K cached kernel +   167,636K free)
 Used RAM: 3,259,174K (2,762,994K used pss +   496,180K kernel)
 Lost RAM:   358,896K
     ZRAM:   285,780K physical used for 1,434,012K in swap (1,442,368K total swap)
   Tuning: 256 (large 512), oom   558,304K, restore limit   186,101K (high-end-gfx)

【讨论】:

    【解决方案4】:

    busybox怎么样?

    adb shell busybox free -m
                 total         used         free       shared      buffers
    Mem:           741          503          237            0            5
    -/+ buffers:                498          242
    Swap:            0            0            0
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-21
      相关资源
      最近更新 更多