python調用adb命令
有兩種方法:os.system(cmd)或os.popen(cmd),前者返回值是腳本的退出狀態碼,後者的返回值是腳本執行過程中的輸出內容。
實際使用時視需求情況而選擇。
現假定有一個shell腳本
test.sh:
#!/bin/bash
echo "hello world!"
exit 3
B. 如何使用Python調用ADB shell中的命令
import os
os.system("adb shell xxxxx")
C. 如何在Python中執行DOS命令
關於python調用cmd命令,主要介紹兩種方式:
一、Python的OS模塊
OS模塊調用CMD命令有兩種方式:os.system(),os.popen()。 都是用當前進程來調用。
1、os.system()
a、簡單粗暴的執行cmd指令
b、返回結果為0表示執行成功,無法獲取命令輸出的內容,本在cmd輸出的內容會直接在控制台輸出。
c、當命令運行結束後接著往下面執行程序(同步阻塞式)。用法如:os.system("ipconfig")。
2、os.popen()
a、能獲取DOS命令輸出的內容。
b、os.popen()返回的是一個file對象,那麼可以跟打開文件一樣操作,r是以讀的方式打開。
c、當命令運行結束後接著往下面執行程序(同步阻塞式)。
注意:os.popen() 方法用於從一個命令打開一個讀寫管道,在Unix,Windows中有效。
用法如:
with os.popen(r"adb devices","r")as f:
text = f.read()
print(text)# cmd輸出結果
二、管道subprocess模塊
a、在當前進程下產生子進程。
b、用wait()函數等待結果(非同步非阻塞式)。
【方法1】
result = subprocess.check_output(r'adb devices') ## 命令執行的輸出結果放到了result里
print(result)
【方法2】
process = subprocess.Popen(r'adb devices',shell=True,stdout=subprocess.PIPE,stderr=subprocess.STDOUT)
command_output = process.stdout.read().decode('gbk')
print(command_output)
Notices:
有些命令行是非同步執行的不會馬上返回輸出,所以有時候我們要先等這個命令行執行完畢才能從stdout讀出來數據。這個時候要加上
process.wait()
我的GitHub
D. python如何進入adb shell交互模式 , 在adb shell交互模式中輸入命令並實時獲得結果
看上圖,你可以試試,只是寫了其中的一部分,具體執行部分,你用if就能搞定,希望能幫到你
E. 每天賺一頓飯錢很輕松利用Python開發某手自動刷視頻腳本
春節期間閑在家裡無事,老媽又要刷快手極速版掙金幣,整天在那刷.看不下去了,就寫了個腳本自動刷.腳本使用 python 調用 adb 命令,目前只實現了只在快手的視頻界面自動滑屏, 其他界面不做任何事.不過可以自行添加需要滑動的界面. 更新: 又增加了刷寶短視頻, 老媽的手機是 OnePlus5T, 最前面會多一個 ' * ContentProviderRecord{362943b u0
com.snda.wifilocating/com..pyramid.runtime.multiprocess.components.ServerProvider}
' 因此直接取位置不可取. 刷寶還是只需要下滑就可以了,因此沒有做特殊動作. 下面是新的Python源碼.
再次更新,又增加了快音,另外修改了前台程序判斷的邏輯,還修改了程序執行的條件,現在不會因為設備突然斷開而導致程序停止運行.
python源碼:
F. adb命令可以給不同手機同時運行重啟腳本么
可以。使用Python調用adb命令可以實現對多台手機設備同時進行重啟,甚至指定重啟的手機型號。ADB全稱為AndroidDebugBridge,起到調試橋的作用,是一個客戶端-伺服器端程序。其中客戶端是用來操作的電腦,服務端是Android設備。
G. python如何操作手機
1、打開手機的開發者選項,本人小米手機,系統android 7.0(miui 9.1),設置->我的設備->全部參數(點擊miui版本5次,即可開啟開發者模式)
2、設置->更多設置(倒數第三個就是開發者選項)->開啟USB調試,使用數據線連接手機和電腦
3、在電腦上安裝adb驅動,下載地址:http://download.csdn.net/download/guochao198975/10189371
打開安裝軟體
4、點擊Device Manager,選擇usb連接的設備,單擊Install,安裝前會有一個嘆號,安裝後如下圖,會出現Android Phone.
如果沒有出現USB連接的設備,則說明手機沒有進入usb調試模式,或者手機沒有連接好.如果一直有感嘆號說明驅動沒有安裝成功.
5、安裝好驅動後,還需要在電腦上下載adb工具,這里注意一定要下載1.0.31以上的版本,網上很多能下載的高的版本都是假的(實際很多都是1.0.26),
推薦下載地址:http://download.csdn.net/download/guochao198975/10188060(版本為1.0.39)
解壓工具到自己指定的目錄下,我解壓的目錄是C:UsersAaronadb
6、我們還需要為adb工具配置環境變數,配置的目的是為後續python程序正常調用adb工具做准備,如果不配置,那麼必須把adb工具和python文件放到同一目錄下(不建議這么做).
右鍵計算機,點擊屬性->高級系統設置->環境變數,在系統變數中的Path中添加自己的adb工具目錄路徑.(注意:我這里是win7系統,其他系統可行網路,大同小異)
7、這里adb就可以正常運行了,打開cmd,輸入 abd version,可以正常顯示你的adb工具版本號
輸入adb devices 可正常顯示 abd設備列表.那麼就表示一切順利.
可是現實情況往往都不怎麼一帆風順.這中間我遇到了兩種問題.
第一個問題是提示"adb not found"
解決方法如下,右鍵計算機->屬性->設備管理器->如下圖右鍵Android Composite ADB Interface,選擇詳細信息,屬性中選擇硬體Id,查看值中如下圖截圖的四個字元(實際是十六進制的編碼),我的是"2717",在自己用戶的主目錄下,找到.android目錄(注意前面的"."),查看是否存在adb_usb.ini文件,如果存在修改即可,如果不存在需要新建一個.用文本編輯器打開,打開後輸入"0x2717"image.png,保存即可.重新拔插數據線,
此問題解決,可再次在cmd中查看adb devices,即可正常顯示設備列表.
第二個問題是雖然可以正常顯示驅動列表,但是狀態是"adb offline ",此問題就是為什麼選在adb版本1.0.31以上的原因了,這是之前adb工具真的安卓4以上手機的bug,在1.0.31以上版本已經解決.
8、在cmd上輸入adb kill-server 然後重新拔插usb線之後,就可以連接adb 了
9、這時我們可以開始部署python環境了,具體怎麼部署python環境,我就不說明了,網上資料很多,相信看此教程的都有點python基礎,沒有的話自行網路.
這里需要強調的是需要引用一些類庫.(如果提示ImportError: No mole named 'numpy'
表示,沒有安裝numpy 或沒有安裝好。使用命令pip install numpy,即可自動安裝)
10、下載微信跳一跳python程序.下載地址:http://download.csdn.net/download/guochao198975/10189554
11、在手機端打開微信跳一跳.在電腦端命令行運行wechat_jump_auto.py.按照提示,輸入y,回車,神奇的事情發生了,微信跳一跳的小人自動蹦了.(溫馨提示不要太高分哦~~~~)
python學習網,大量的免費python視頻教程,歡迎在線學習!
H. python的subprocess.Popen()執行adb命令,adb報錯返回中文數據時會出錯,應該怎麼辦
你打包成exe後,命令行應該是pyinstller -Fw xxx.py
你加上了w參數也就是把console設置成了flase;那麼os.popen()或者subprocess.popen()執行的時候沒有載體,你只有把console設置成true,也就是命令改為pyinstaller -F xxx.py,這樣你的os.popen()可執行,也能獲得返回值。
的話還蠻多的但是非要說哪一個好玩的話就沒有什麼標准
I. 如何用python寫一個小工具,輸入IP後自動調用adb connect XXX.XXX.XX.XX 來無線連接adb
在Python中可用os.system執行終端命令,把adb傳入即可
J. 如何使用python腳本調用adb shell裡面的命令
python調用Shell腳本,有兩種方法:os.system(cmd)或os.popen(cmd),前者返回值是腳本的退出狀態碼,後者的返回值是腳本執行過程中的輸出內容。實際使用時視需求情況而選擇。
現假定有一個shell腳本
test.sh:
#!/bin/bash
echo "hello world!"
exit 3