【python调用windows CLI】调用adb统计Android app的流量消耗

主要记录python如何调用windows CLI

手机连接PC,adb devices可以看到手机sn

通过adb 获取指定app的processID UID

读取Android  /proc/net/xt_qtaguid/stats 获取指定列,格式化输出,用于后续统计app消耗的流量

#coding=utf-8 
import subprocess
import time
fo = open(r"D:\foo.txt", "w")
#获取进程ID
getProcessIdcmd = 'adb shell ps | grep appname'
p = subprocess.Popen(getProcessIdcmd, shell=False, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
content = p.stdout.readlines()
if len(content) == 1:
    processId = content[0].split()[1]
else:
    print "not get processID"
#获取进程对应的UID
getUidcmd = 'adb shell cat /proc/' + processId + '/status | grep Uid'

p = subprocess.Popen(getUidcmd, shell=False, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
content = p.stdout.readlines()
uidList = content[0].strip().split('\t')
print uidList
uid = uidList[1]

#获取UID对应的Traffic
getTrafficcmd = 'adb shell cat /proc/net/xt_qtaguid/stats | grep ' + uid

for i in range(10000):
    currentTime =  time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
    traffic_initial = [0]*16
    traffic_prefix = [] 
    p = subprocess.Popen(getTrafficcmd, shell=False, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)    
    for line in p.stdout.readlines():    
        ll = line.strip()
        ll2=ll.replace(' ',',')
        ll2_list=ll2.split(',')
        traffic_list = ll2_list[5:]
        traffic_prefix = ll2_list[0:4]
        traffic_list_int = [int(e) for e in traffic_list]
        
        traffic_initial = [x+y for x, y in zip(traffic_initial, traffic_list_int)]
        #print traffic_list
        print currentTime + "," + ll2
    retval = p.wait()
    print traffic_initial
    traffic_list_str = [str(e) for e in traffic_initial]
    print traffic_prefix + traffic_list_str
    traffic = ','.join(traffic_prefix + traffic_list_str)
    print currentTime +','+ traffic
    fo.write(currentTime +','+ traffic + '\n')
    time.sleep(60)
    print '--------------'
fo.close()

 

转载于:https://www.cnblogs.com/AlexBai326/p/5955325.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值