1 # -*- coding:utf-8 -*- 2 ''' 3 Created on Sep 10, 2018 4 5 @author: SaShuangYiBing 6 ''' 7 import subprocess 8 import time 9 10 class CPU_usage(object): 11 """ 12 CPU统计方法是参照:https://blog.csdn.net/xiaodanpeng/article/details/53503076 13 14 """ 15 def __init__(self,t0): 16 self.time = t0 17 18 def read_cpu(self): 19 cpu_info0 = [] 20 cpu_info1 = subprocess.check_output('adb shell cat /proc/stat').decode().split()[1:11] 21 for i in cpu_info1: 22 cpu_info0.append(int(i)) 23 return cpu_info0 24 25 def get_idle(self): 26 cpu_idle = self.read_cpu()[3] 27 return cpu_idle 28 29 def cal_cpu(self): 30 t1_total = sum(self.read_cpu()) 31 t1_idle = self.get_idle() 32 time.sleep(self.time) 33 t2_total = sum(self.read_cpu()) 34 t2_idle = self.get_idle() 35 cpu_usage = (1 - (t2_idle - t1_idle)/(t2_total - t1_total))*100 36 if cpu_usage < 0: 37 return cpu_usage == 0 38 else: 39 return cpu_usage 40 41 if __name__ == "__main__": 42 cal_cpu = CPU_usage(1) 43 while True: 44 print (time.strftime('%Y-%m-%d %H:%M:%S') + " The CPU usage is %d" %cal_cpu.cal_cpu() + "%") 45