adb shell dumpsys meminfo cn.com.x.main -gc
详细拆解
-
dumpsys meminfo: 原本是用来查看内存详情的工具。 -
gc: 这是一个隐藏的子指令。当meminfo带着gc参数指向某个包名时,系统会先对该进程触发一次 强制同步 GC,然后再收集内存数据。 -
cn.com.x.main: 目标 App 的包名。
Mac/Linux (每 5 秒自动触发并查看结果):
watch -n 5 "adb shell dumpsys meminfo cn.com.x.main -gc | grep TOTAL"
windows下 powershell 中每5s gc 一下:
while($true) { adb shell dumpsys meminfo cn.com.x.main -gc; sleep 5 }
内容分析:
-
PSS Total: 158,437K (约 155MB) 在电视盒端,这个内存占用属于中等偏高。
-
内存分布情况:
-
Dalvik (Java 内存): 81,012K ------ 这是 App 逻辑占用的主要部分,说明 Java 层的对象较多。
-
Native (原生内存): 84,255K ------ 这部分通常包含图片解码、视频渲染缓冲区或 C++ 层插件。
-
Mmap (.so/.dex/.art): 约 100MB+ ------ 这些是代码和资源的映射,属于正常开销。
-
这是一台 Low-Ram(低内存) 设备,从以下指标可以看出:
-
Total RAM: 980,444K (标称 1GB)
-
Free RAM: 仅 69MB (空闲内存极低)。
-
Used RAM: 726,321K。
-
ZRAM: 90,772K 物理内存压缩了 278MB 的数据。
- 分析 :系统已经在拼命压缩内存以维持运行了。Swap Pss 达到了 244MB ,这意味着
cn.com.x.main里的很多数据其实被置换到了压缩内存里。当你操作 App 时,可能会感觉到轻微的卡顿,因为系统需要不断地解压数据。
- 分析 :系统已经在拼命压缩内存以维持运行了。Swap Pss 达到了 244MB ,这意味着