博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【python调用windows CLI】调用adb统计Android app的流量消耗
阅读量:4331 次
发布时间:2019-06-06

本文共 1907 字,大约阅读时间需要 6 分钟。

主要记录python如何调用windows CLI

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

通过adb 获取指定app的processID UID

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

#coding=utf-8 import subprocessimport timefo = open(r"D:\foo.txt", "w")#获取进程IDgetProcessIdcmd = '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"#获取进程对应的UIDgetUidcmd = '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 uidListuid = uidList[1]#获取UID对应的TrafficgetTrafficcmd = 'adb shell cat /proc/net/xt_qtaguid/stats | grep ' + uidfor 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

你可能感兴趣的文章
51Nod1601 完全图的最小生成树计数 Trie Prufer编码
查看>>
Codeforces 1110D. Jongmah 动态规划
查看>>
android驱动在win10系统上安装的心酸历程
查看>>
优雅的程序员
查看>>
oracle之三 自动任务调度
查看>>
Android dex分包方案
查看>>
ThreadLocal为什么要用WeakReference
查看>>
删除本地文件
查看>>
FOC实现概述
查看>>
base64编码的图片字节流存入html页面中的显示
查看>>
这个大学时代的博客不在维护了,请移步到我的新博客
查看>>
GUI学习之二十一——QSlider、QScroll、QDial学习总结
查看>>
nginx反向代理docker registry报”blob upload unknown"解决办法
查看>>
gethostbyname与sockaddr_in的完美组合
查看>>
kibana的query string syntax 笔记
查看>>
旋转变换(一)旋转矩阵
查看>>
thinkphp3.2.3 bug集锦
查看>>
[BZOJ 4010] 菜肴制作
查看>>
C# 创建 读取 更新 XML文件
查看>>
KD树
查看>>