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

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

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//获取流量数据
执行:


↙↙↙阅读原文可查看相关链接,并与作者交流