adb性能测试命令
一.CPU性能监控
1.1查看所有进程CPU使用率
adb shell top -n 1
其中-n 1表示只执行一次(非实时),结果中的%CPU列显示各进程CPU占用率
1.2 查看特定应用的CPU使用率
adb shell top -n 1 | grep <package>
替换<PACKAGE_NAME> 为应用包名 (如com.example.app)
1.3 获取应用 CPU 使用率百分比
adb shell dumpsys cpuinfo | grep <package_name>
输出包含TOTAL字段,显示应用占用的CPU时间百分比
二.内存性能监控
2.1 查看系统内存总体使用情况
adb shell free
显示总内存、已用内存、空闲内存等信息
2.2 查看应用内存占用(PSS 值)
adb shell dumpsys meminfo <PACKAGE_NAME>
PSS(Proportional Set Size)是应用实际占用的物理内存
2.3 获取应用堆内存信息
adb shell dumpsys meminfo <PACKAGE_NAME> | grep "Heap"
关注Heap Size(堆总大小)和Heap Alloc(已分配堆内存)
三.网络性能监控
3.1 查看应用网络流量
adb shell cat /proc/net/xt_qtaguid/stats | grep <UID>
显示所有网络连接状态(TCP/UDP)
3.2 使用netstat查看网络连接
adb shell netstat
3.3 测试网络延迟(ping)
adb shell ping -c 5 www.google.com
-c 5表示发送 5 个数据包
四.电量消耗监控
4.1 启用电池统计
adb shell dumpsys batterystats --reset
# 执行测试操作后...
adb shell dumpsys batterystats > batterystats.txt
分析batterystats.txt文件可查看应用耗电情况
4.2 获取电池当前状态
adb shell dumpsys battery
显示电池电量、温度、状态(充电 / 放电)等
五.GPU性能监控
5.1 启用 GPU 呈现模式分析
adb shell setprop debug.hwui.profile true
adb shell dumpsys gfxinfo <PACKAGE_NAME>
输出包含每帧渲染时间,用于分析 UI 卡顿问题
5.2 查看 GPU 渲染直方图
adb shell dumpsys gfxinfo <PACKAGE_NAME> framestats
生成详细的帧统计数据
六.综合性能分析
6.1 使用 systrace(需 Python 环境)
# 在PC上执行
python <ANDROID_SDK>/platform-tools/systrace/systrace.py -t 10 -a <PACKAGE_NAME> gfx view wm am pm
生成 HTML 格式的系统性能跟踪报告(包含 CPU、GPU、UI 等)
自动化性能测试脚本示例
以下是一个简单的 Shell 脚本,用于循环采集应用的 CPU 和内存数据:
#!/bin/bashPACKAGE="com.example.app"
OUTPUT_FILE="performance_data.csv"
INTERVAL=5 # 采样间隔(秒)
DURATION=300 # 总测试时长(秒)echo "Time,CPU(%),Memory(KB)" > $OUTPUT_FILEfor ((i=0; i<$DURATION; i+=$INTERVAL)); doTIMESTAMP=$(date +%H:%M:%S)CPU=$(adb shell top -n 1 | grep $PACKAGE | awk '{print $9}')MEM=$(adb shell dumpsys meminfo $PACKAGE | grep TOTAL | awk '{print $2}')echo "$TIMESTAMP,$CPU,$MEM" >> $OUTPUT_FILEsleep $INTERVAL
doneecho "性能数据已保存至: $OUTPUT_FILE"
将上述脚本保存为perf_test.sh,修改PACKAGE为目标应用包名,然后执行:
chmod +x perf_test.sh
./perf_test.sh
注意事项
- 需先将设备通过 USB 连接电脑并开启 USB 调试模式
- 部分命令需要设备 Root 权限
- 长时间测试建议使用电池充电器供电
- 测试时尽量关闭其他无关应用以减少干扰