學習了一下python中使用adb命令的
- 2020 年 1 月 10 日
- 筆記
在python中使用adb命令,可以導入os模組。
1 簡單的adb命令。
如:os.system('adb version')
2 稍微複雜的adb命令。
如:os.system('adb shell "dumpsys activity | grep "mFocusedActivity""')
3 希望將adb讀出的內容保存。
如:out = os.popen('adb shell "dumpsys activity | grep "mFocusedActivity""').read()
總結一下:os.system不支援讀取, os.popen支援讀取。
下面有一個轉來的腳本,學習一下:
import os import re os.system('adb version') os.system('adb devices') #os.system是不支援讀取操作的 out = os.popen('adb shell "dumpsys activity | grep "mFocusedActivity""').read() #os.popen支援讀取操作 print(out) #下面的程式碼是獲取當前窗口的component參數 def getFocusedPackageAndActivity(): pattern = re.compile(r"[a-zA-Z0-9.]+/[a-zA-Z0-9.]+") #這裡使用了正則表達式,對輸出的內容做了限制,只會顯示類似"com.mediatek.factorymode/com.mediatek.factorymode.FactoryMode"的字元串 out = os.popen("adb shell dumpsys window windows | findstr / | findstr name=").read() #window下使用findstr list = pattern.findall(out) component = list[0] #輸出列表中的第一條字元串 return component print(getFocusedPackageAndActivity())