安卓FPS查看工具-GUI版
上一章完成了FPS的命令行版本的查看工具,这一章节开始学习绘制FPS的曲线。
在编写之前,谷歌了一圈,发现有一个叫mathplot的插件不错。开始读文档开战,插件官网地址:http://matplotlib.org/,看完demo,目标是能动态显示曲线。
废话少说,贴代码:
#coding:utf-8
import os,time
import matplotlib.pyplot as plt
def checkadb():
return os.path.exists('adb')
def checkdevices():
rt = os.popen('adb devices')
t = rt.readline()
rt.close()
return t
def getframe():
cmd = "adb shell \"service call SurfaceFlinger 1013|busybox cut -d \( -f 2|busybox cut -d \\' -f 0 \""
r = os.popen(cmd)
text = r.read()
r.close()
return text
def getfps():
starttime = round(time.time()*1000)
startframe = int(getframe(), 16)
time.sleep(0.001)
endtime = round(time.time()*1000)
endframe = int(getframe(),16)
fps = (endframe - startframe)*1000/(endtime - starttime)
return fps
def draw():
plt.ion()
plt.xlabel("Time(s)")
plt.ylabel("FPS")
plt.title("FPS Test Tool For root android device v1.0 \n By Wanyor")
plt.xlim(0,60) #首先得设置一个x轴的区间 这个是必须的
plt.ylim(0,100) # y轴区间
m = []
x=0
while True:
x=x+1
if x>60:
plt.xlim(x-59,x)
m.append(getfps()) #存入list里面
plt.plot(m,label="$fps$",color="red",linewidth=1) #将list传入plot画图
plt.pause(0.0001) # 这个为停顿0.01s,能得到产生实时的
def usage():
print 'Print fps realtime for a rooted android device.'
print ''
print 'Author: wangyong11@qiku.com 2016-6-15 17:38:43\n'
print 'You can stop it use ctrl+c \n'
def main():
#if checkadb():
usage()
try:
draw()
except Exception, e:
raise e
finally:
print "Buddy, android devices must root!!!"
'''
else:
print 'Please install adb toolkit!'
'''
if __name__ == '__main__':
main()