测试基础 通过 adb 命令获取手机应用性能数据 (CPU、内存、流量)

蔡瑞淳 for 君海游戏QA · May 25, 2018 · Last by 陌路微凉 replied at May 25, 2020 · 14005 hits

由于工作需要获取安卓手机游戏应用运行时的性能数据,上网学习了一些知识,整理记录下。。。

若有错误,欢迎指正;若有更好方法,感谢分享。

1. 获取CPU数据

命令:adb shell top -n -1 | find "package信息"
执行:

2. 获取内存数据

(1)手机总内存

命令:adb shell cat /proc/meminfo |findstr MemTotal
执行:

(2)运行内存

① 基本内存耗用分类:

● VSS- Virtual Set Size 虚拟耗用内存(包含共享库占用的内存)
● RSS- Resident Set Size 实际使用物理内存(包含共享库占用的内存)
● PSS- Proportional Set Size 实际使用的物理内存(比例分配共享库占用的内存)
● USS- Unique Set Size 进程独自占用的物理内存(不包含共享库占用的内存)
说明:
a.一般来说内存占用大小有如下规律:VSS >= RSS >= PSS >= USS
b.实际在统计查看某个进程内存占用情况的时候,看PSS是比较客观的

② 获取VSS和RSS:

命令:adb shell top -n 1 |findstr "packageinfo"
执行:

③ 获取PSS

命令:adb shell dumpsys meminfo pakagename
执行:

④ 获取VSS、RSS、PSS、USS

命令:adb shell procrank (需要手机root权限)

3. 获取应用流量

(1)方法1

命令:
adb shell ps | grep 'com..xxx.union' | awk '{print $2}' //获取pid,下个命令要用到
adb shell cat /proc/pid/status | grep Uid | awk '{print $2}' //获取uid,下个命令要用到
adb shell cat /proc/uid_stat/uid/tcp_snd //获取tcp_snd流量数据
adb shell cat /proc/uid_stat/uid/tcp_rcv //获取tcp_rcv流量数据
执行:

(2)方法2

命令:adb shell cat /proc/13478/net/dev//获取流量数据
执行:

共收到 2 条回复 时间 点赞

我使用了楼主获取流量的方式,但是通过实践证明,我自己新建一个app,里面没有网络的请求,查看/net/dev文件,流量还是会增加,所以觉得此方法统计的数据不准确

需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up