今天运营让帮忙测下app启动流量消耗于是乎一顿百度
先拿到被测App的UID,如下,10200就是tank.stars.tankgames.games.bowmasters.casual.battle应用的UID
(1)被测应用的包名:tank.stars.tankgames.games.bowmasters.casual.battle
如果不知道包名,就去下个专门检测包名的软件
(2)在cmd中输入adb shell进入命令模式后,并切换到管理员账号:su root
(3)输入查看UID的命令
cat /data/system/packages.list | grep tank.stars.tankgames.games.bowmasters.casual.battle
(4)流量数据分为接收流量(tcp_rcv)和发送流量(tcp_snd)两部分,这两个状态数值我们可以通过读取/proc/uid_stat/<UID>目录下的两个文件得到。
接受流量命令:cat /proc/uid_stat/10200/tcp_rcv
发送流量命令:cat/proc/uid_stat/10200/tcp_snd
单位bytes,这个数据是累加的,除非卸载应用才会被删除。否则会一直增加。
所以测试前记录下数字,测试完后减去记录的数字就是流量大小。
还有,这种方式只能获取TCP协议的流量,UDP的没有计算
实例:(1)运行程序并获取目前接受流量的数据:cat /proc/uid_stat/10200/tcp_rcv
(2)清除应用缓存,并启动该报名的应用程序,然后结束应用
接着再次运行:cat /proc/uid_stat/10200/tcp_rcv
(3)因为该数据单位是bytes,接着用(2)-(1)后的数据再除以1024得到消耗的具体数据KB
第一次
(2170126-1238371)/1024=909kb
第二次
(2695529-2170126)/1024=513kb
。。。。。。
要想精确,多试几次,最后加权平均
备注:其它场景的流量也可以用该方式去测试了
网友评论