python定时器的实践

背景:

某一天发现某个andriod机器的温度过高,andriod工程师告诉我cpu的温度在/sys/class/thermal/中。那么如何监控温度呢?

构思:

利用定时器和adb命令获取机器的cpu温度。

准备:

首先我们做一些准备

adb是什么?

adb即andriod-debug-bridge的缩写。中文叫andriod调试桥,adb是一个功能多样的命令行工具。通过这些命令我们可以与设备交互。

adb命令

adb connect +ip #远程连接设备
adb disconnect #断开连接
adb  devices #查看连接
adb shell #远程登录到设备

threading.Timer

Timer(定时器)是Thread的派生类,用于在指定时间后调用一个方法。Timer从Thread派生,没有增加实例方法。
函数:Timer(interval, function, args=[ ], kwargs={ })

interval: 指定的时间
function: 要执行的方法
args/kwargs: 方法的参数

此处引用链接:https://blog.csdn.net/brucewong0516/article/details/84589616

  • 开始
import os
import threading


ip= '192.168.0.200'
os.system('adb disconnect')
os.system('adb connect '+ip)
list=[]
def fn():
    #f1= os.system('adb cat  /sys/class/thermal/thermal_zone1/temp')
    #popen支持读取,system不支持读取
    out = os.popen('adb shell cat  /sys/class/thermal/thermal_zone1/temp').readline()
    timer = threading.Timer(5, fn)
    timer.start()
    list.append(str(out))
    print(list)
if __name__ == '__main__':
    fn()


tips:
1、当设备已经被连接时其他的adb客户端将不能连接,故要先断开其他设备的连接。
2、os模块中 popen支持读取,system不支持读取。所以读取时要使用popen

测试的乐趣是测试进步的不竭动力

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。