【发布时间】:2014-04-03 16:21:32
【问题描述】:
我试过adb shell top,但它提供了太多详细信息。
我需要的只是总可用内存。如何通过亚行获取?
【问题讨论】:
-
here is good 讨论如何解释这些值 - 以及获得“空闲”内存量的其他选项
我试过adb shell top,但它提供了太多详细信息。
我需要的只是总可用内存。如何通过亚行获取?
【问题讨论】:
为什么不内置::
$ adb shell "cat /proc/meminfo"
大多数手机缺少free 实用程序,更不用说buzybox。另一方面,/proc/meminfo 是 Linux 不可或缺的一部分。
【讨论】:
free内存可以通过添加MemFree和SwapFree来计算
watch -n 0.5 adb shell "cat /proc/meminfo" 这可以让这条评论更有用
到目前为止我发现的最“干净”的方式是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 为单位的空闲内存。
【讨论】:
/proc/meminfo 的 MemAvailable 列是一个更好的描述符。我的 android 开发板有 1GB 的 RAM,vmstat 显示大约 256MB 可用空间。 /proc/meminfo 显示相同的 256MB 可用空间,但显示大约 650MB 实际上可用供程序使用。
你也可以看看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)
【讨论】:
用busybox怎么样?
adb shell busybox free -m
total used free shared buffers
Mem: 741 503 237 0 5
-/+ buffers: 498 242
Swap: 0 0 0
【讨论】: