背景:
某一天發(fā)現(xiàn)某個(gè)andriod機(jī)器的溫度過高太惠,andriod工程師告訴我cpu的溫度在/sys/class/thermal/中故黑。那么如何監(jiān)控溫度呢骑科?
構(gòu)思:
利用定時(shí)器和adb命令獲取機(jī)器的cpu溫度褪贵。
準(zhǔn)備:
首先我們做一些準(zhǔn)備
adb是什么匣摘?
adb即andriod-debug-bridge的縮寫亏吝。中文叫andriod調(diào)試橋岭埠,adb是一個(gè)功能多樣的命令行工具。通過這些命令我們可以與設(shè)備交互蔚鸥。
adb命令
adb connect +ip #遠(yuǎn)程連接設(shè)備
adb disconnect #斷開連接
adb devices #查看連接
adb shell #遠(yuǎn)程登錄到設(shè)備
threading.Timer
Timer(定時(shí)器)是Thread的派生類惜论,用于在指定時(shí)間后調(diào)用一個(gè)方法。Timer從Thread派生止喷,沒有增加實(shí)例方法馆类。
函數(shù):Timer(interval, function, args=[ ], kwargs={ })
interval: 指定的時(shí)間
function: 要執(zhí)行的方法
args/kwargs: 方法的參數(shù)
此處引用鏈接: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弹谁、當(dāng)設(shè)備已經(jīng)被連接時(shí)其他的adb客戶端將不能連接乾巧,故要先斷開其他設(shè)備的連接。
2预愤、os模塊中 popen支持讀取,system不支持讀取植康。所以讀取時(shí)要使用popen