adb性能测试命令

一.CPU性能监控

1.1查看所有进程CPU使用率

bash 复制代码
adb shell top -n 1

其中-n 1表示只执行一次(非实时),结果中的%CPU列显示各进程CPU占用率

1.2 查看特定应用的CPU使用率

bash 复制代码
adb shell top -n 1 | grep <package>

替换<PACKAGE_NAME> 为应用包名 (如com.example.app)

1.3 获取应用 CPU 使用率百分比

bash 复制代码
adb shell dumpsys cpuinfo | grep <package_name>

输出包含TOTAL字段,显示应用占用的CPU时间百分比

二.内存性能监控

2.1 查看系统内存总体使用情况

bash 复制代码
adb shell free

显示总内存、已用内存、空闲内存等信息

2.2 查看应用内存占用(PSS 值)

bash 复制代码
adb shell dumpsys meminfo <PACKAGE_NAME>

PSS(Proportional Set Size)是应用实际占用的物理内存

2.3 获取应用堆内存信息

bash 复制代码
adb shell dumpsys meminfo <PACKAGE_NAME> | grep "Heap"

关注Heap Size(堆总大小)和Heap Alloc(已分配堆内存)

三.网络性能监控

3.1 查看应用网络流量

bash 复制代码
adb shell cat /proc/net/xt_qtaguid/stats | grep <UID>

显示所有网络连接状态(TCP/UDP)

3.2 使用netstat查看网络连接

bash 复制代码
adb shell netstat

3.3 测试网络延迟(ping)

bash 复制代码
adb shell ping -c 5 www.google.com

-c 5表示发送 5 个数据包

四.电量消耗监控

4.1 启用电池统计

bash 复制代码
adb shell dumpsys batterystats --reset
# 执行测试操作后...
adb shell dumpsys batterystats > batterystats.txt

分析batterystats.txt文件可查看应用耗电情况

4.2 获取电池当前状态

bash 复制代码
adb shell dumpsys battery

显示电池电量、温度、状态(充电 / 放电)等

五.GPU性能监控

5.1 启用 GPU 呈现模式分析

bash 复制代码
adb shell setprop debug.hwui.profile true
adb shell dumpsys gfxinfo <PACKAGE_NAME>

输出包含每帧渲染时间,用于分析 UI 卡顿问题

5.2 查看 GPU 渲染直方图

bash 复制代码
adb shell dumpsys gfxinfo <PACKAGE_NAME> framestats

生成详细的帧统计数据

六.综合性能分析

6.1 使用 systrace(需 Python 环境)

bash 复制代码
# 在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 和内存数据:

bash 复制代码
#!/bin/bash

PACKAGE="com.example.app"
OUTPUT_FILE="performance_data.csv"
INTERVAL=5  # 采样间隔(秒)
DURATION=300  # 总测试时长(秒)

echo "Time,CPU(%),Memory(KB)" > $OUTPUT_FILE

for ((i=0; i<$DURATION; i+=$INTERVAL)); do
    TIMESTAMP=$(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_FILE
    sleep $INTERVAL
done

echo "性能数据已保存至: $OUTPUT_FILE"

将上述脚本保存为perf_test.sh,修改PACKAGE为目标应用包名,然后执行:

bash 复制代码
chmod +x perf_test.sh
./perf_test.sh

注意事项

  • 需先将设备通过 USB 连接电脑并开启 USB 调试模式
  • 部分命令需要设备 Root 权限
  • 长时间测试建议使用电池充电器供电
  • 测试时尽量关闭其他无关应用以减少干扰
相关推荐
JosieBook1 小时前
【数据库】MySQL 实战精通系列 · 第1篇:MySQL 全局观与实战环境搭建
数据库·mysql·adb
蒸鱼Yuzheng12 小时前
设备端性能工件可靠导出:断点续传、哈希、manifest 与失败恢复
android·自动化测试·python·adb·数据完整性
文人sec9 天前
grant 之后要跟着 flush privileges 吗?要不要使用分区表?
数据库·mysql·adb·数据分析
2501_9160088910 天前
SSE 和 gRPC 流式接口如何抓包,调试 SSE 与 gRPC 流式接口
网络协议·计算机网络·网络安全·ios·adb·https·udp
2501_9160088913 天前
全平台抓包工具,Windows、iPhone、Linux三个平台抓包测试
网络协议·计算机网络·网络安全·ios·adb·https·udp
鸽芷咕15 天前
MySQL Server 鸿蒙 PC 适配全记录:以混合工具链完成 C++23 交叉编译与 HNP 交付
adb·harmonyos·c++23
游戏开发爱好者818 天前
网络连接排查指南,谁在电脑后台偷跑流量,哪些程序在联网
网络协议·计算机网络·网络安全·ios·adb·https·udp
实心儿儿18 天前
MySQL 的安装
数据库·mysql·adb
2601_9623004718 天前
基于Python与Tkinter的ADB Monkey自动化测试脚本开发
python·adb·tkinter·android测试·gui自动化
flower_drop20 天前
基于 WebUSB 与 CDP:在浏览器端实现 Android 设备通信与无证书抓包实践
android·chrome·测试工具·adb·bug·edge浏览器