python获取安卓app性能参数并绘图

from matplotlib import pyplot as plt
from matplotlib import animation
import os,re
# import numpy as  np

def getTotalPss():
    lines=os.popen("adb shell dumpsys meminfo com.rn_kiosk").readlines()
    # print(lines)
    total="TOTAL"
    for line in lines:
        if re.findall(total,line):
            lis=line.split(' ')
            # print(lis)
            while '' in lis:
                lis.remove('')
            return lis[1]
            # print(lis[1])


def getCpu():
    li = os.popen("adb shell top -m 100 -n 1 -s cpu").readlines()
    name = "com.rn_kiosk" 
    for line in li:
        if re.findall(name,line):
            cuplist = line.split(" ")
            # print(cuplist)
            if cuplist[-1].strip() == 'com.rn_kiosk':
              while '' in cuplist: # 将list中的空元素删除
                cuplist.remove('')
              return(float(cuplist[2].strip('%'))) #去掉百分号,返回一个float
            # print(cuplist)
            # print((cuplist[2].strip('%')))
         
# getCpu()

fig = plt.figure()
ax1 = fig.add_subplot(2,1,1,xlim=(0, 1000), ylim=(0, 350))
ax2 = fig.add_subplot(2,1,2,xlim=(0, 1000), ylim=(0, 100))
line,= ax1.plot([], [], lw=2)
line2,= ax2.plot([], [], lw=2)
x=[]
y=[]
y2=[]

def init():
    line.set_data([], [])
    line2.set_data([], []) 
    return line,line2

def getx():
    t = "0" 
    return t

def animate(i): 
    x.append(int(getx())+i) 
    y.append(int(getTotalPss())/1024)
    y2.append(getCpu())
    print(x,y) 
    line.set_data(x,y)
    line2.set_data(x,y2)
    return line,line2

anim1 = animation.FuncAnimation(fig, animate, init_func=init, frames=1000, interval=30)
plt.show()

 

转载于:https://www.cnblogs.com/paul-wang/p/9855576.html

你可能感兴趣的:(python获取安卓app性能参数并绘图)