You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android设备用dumpsys替代top获取时段资源使用的超时问题

解决dumpsys无法持续采集CPU/内存数据的问题

我明白你想替换原来的top命令,用dumpsys来持续获取一段时间内的CPU、内存和交换分区使用情况,但遇到了-t参数不生效的问题——这其实是对dumpsys的-t(--timeout)参数的用途误解了,我来帮你理清并给出正确的方案:

为什么dumpsys -t 20 cpuinfo不生效?

dumpsys的-t参数并不是让它持续采集数据20秒,而是限制单个服务查询的超时时间。比如你执行dumpsys cpuinfo,它只会一次性输出当前的CPU状态,-t 20只是告诉系统:如果查询cpuinfo服务的时间超过20秒,就强制终止查询,而不是让它每隔一段时间输出一次数据。这和top -n $duration的持续采集逻辑完全不同,所以你的用法达不到预期效果。

用dumpsys模拟top的持续采集效果

要实现类似top的周期性采集,我们可以结合Shell循环+sleep命令,定期调用dumpsys获取数据,循环指定次数或持续指定时长。下面是针对不同指标的具体实现:

1. 获取CPU总使用情况

dumpsys cpuinfo会输出系统CPU的详细使用统计,你可以通过过滤关键字提取总使用数据(适配大部分Android版本):

# 单次获取CPU总使用
dumpsys cpuinfo | grep -A 1 "Total CPU usage"

如果需要持续采集(比如每1秒一次,共采集20次),可以用循环:

duration=20
for ((i=0; i<$duration; i++)); do
    echo "=== CPU Stats at $(date) ==="
    dumpsys cpuinfo | grep -A 1 "Total CPU usage"
    sleep 1
done

2. 获取内存与交换分区使用情况

dumpsys meminfo可以获取系统内存的整体状态,用-s参数可以获取简洁的摘要,同时能提取交换分区数据:

# 单次获取内存与交换分区摘要
dumpsys meminfo -s | grep -E "(Total RAM|Used RAM|Free RAM|SwapTotal|SwapUsed)"

持续采集的脚本示例:

duration=20
for ((i=0; i<$duration; i++)); do
    echo "=== Memory & Swap Stats at $(date) ==="
    dumpsys meminfo -s | grep -E "(Total RAM|Used RAM|Free RAM|SwapTotal|SwapUsed)"
    sleep 1
done

3. 完整替代原top命令的脚本

把上面的逻辑整合起来,完美替换你原来的top -m 1 -d 1.0 -n $duration:

#!/bin/sh
duration=$1

if [ -z "$duration" ]; then
    echo "Usage: $0 <duration>"
    exit 1
fi

echo "=== System Resource Stats ($duration samples, 1s interval) ==="
for ((i=0; i<$duration; i++)); do
    timestamp=$(date "+%Y-%m-%d %H:%M:%S")
    echo "\n--- $timestamp ---"
    
    # CPU Stats
    echo "CPU Usage:"
    dumpsys cpuinfo | grep -A 1 "Total CPU usage"
    
    # Memory & Swap Stats
    echo "\nMemory & Swap:"
    dumpsys meminfo -s | grep -E "(Total RAM|Used RAM|Free RAM|SwapTotal|SwapUsed)"
    
    sleep 1
done

注意事项

  • 不同Android版本的dumpsys输出格式可能略有差异,如果你发现过滤不到数据,可以直接执行dumpsys cpuinfo或dumpsys meminfo查看原始输出,调整过滤的关键字。
  • 大部分设备不需要root权限,只要有ADB shell权限就能执行这些dumpsys命令。

内容的提问来源于stack exchange,提问作者John

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 02:23:59