日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python: adb自动化ce'shi

發布時間:2025/3/15 python 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python: adb自动化ce'shi 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在python中使用adb命令,可以導入os模塊,手機開啟開發者模式,然后連接上電腦。
注意使用的python版本是2.7.

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 osimport reos.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下使用findstrlist = pattern.findall(out)component = list[0] #輸出列表中的第一條字符串return componentprint(getFocusedPackageAndActivity())

python交互

使用subprocess
使設備具有部分Linux命令
python腳本:下載busybox,并且放在與腳本相同的目錄下

# coding:utf-8 # 這個腳本用于使環境擁有busybox的環境 import subprocessimport os print "開始push文件" os.system(" adb push busybox /system/xbin/") print "開始root" os.system("adb root") print "開始remote" os.system("adb remount")#這里面的命令全部都會在Linux的環境下執行,最后需要退出。 cmds = ["chmod 755 /system/xbin/busybox","cd /system/xbin/","busybox --install .","awk","ps |grep com.txznet.music|awk '{print $2}' | head -n 1","exit",#這是是非常關鍵的,退出 ] print "開始安裝" pipe = subprocess.Popen("adb shell", stdin=subprocess.PIPE, stdout=subprocess.PIPE) code = pipe.communicate("\n".join(cmds) + "\n"); print code print "安裝結束"殺掉相應的進程# coding:utf-8 # 這個腳本是用來殺掉music的進程的 import os import string import subprocess def kill(result):print result.strip()code = os.system(" adb shell kill " + result.strip())print codeprocessname = os.system('''adb shell ps|grep com.txznet.music|awk '{print$2","}''''')# print processname # result="["+str(processname)+"]" # print result # for processID in result: # print processID.strip() # code=os.system(" adb shell kill "+processID.strip()) # print codepipe = subprocess.Popen("adb shell ps|grep com.txznet.music|awk '{print$2}'", stdin=subprocess.PIPE,stdout=subprocess.PIPE)# result=pipe.communicate("ps|grep com.txznet.music|awk '{print$2","}'") # print result result = pipe.stdout.readline() result1 = pipe.stdout.readline() result2 = pipe.stdout.readline() print result kill(result) print result1 kill(result1) print result2 kill(result2)

總結

以上是生活随笔為你收集整理的Python: adb自动化ce'shi的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。