python中adb有什么功能
ADB是Android SDK中的一個工具, 使用ADB可以直接操作管理Android模擬器或者真實的Andriod設(shè)備。
ADB主要功能有:
1、在Android設(shè)備上運行Shell(命令行)
2、管理模擬器或設(shè)備的端口映射
3、在計算機(jī)和設(shè)備之間上傳/下載文件
4、將電腦上的本地APK軟件安裝至Android模擬器或設(shè)備上
python有兩種方式去調(diào)用adb命令,一種是os.system(),一種是os.popen()。
兩者的區(qū)別就是前者無法獲取到返回值,后者可以獲取到返回值。
os.popen()返回的是file對象,可以直接利用read()方法讀取。
內(nèi)容擴(kuò)展:
python如何調(diào)用adb命令
Python中執(zhí)行cmd命令可以用到os和subprocess兩個模塊。區(qū)別在于os是阻塞式的,subprocess是非阻塞式的,所以我們使用subprocess是比較適合的。接下來我先舉一個查詢連接設(shè)備的命令來看看python中怎么樣的寫法。用到的命令為 adb devices。
import subprocess order='adb devices' #獲取連接設(shè)備 pi= subprocess.Popen(order,shell=True,stdout=subprocess.PIPE) print pi.stdout.read() #打印結(jié)果
實際打印結(jié)果,可以看到當(dāng)前電腦連接了三臺設(shè)備。這里需要再說明一下adb devices 命令的結(jié)果返回是一次性的,所以我們用read方法讀取數(shù)據(jù)是沒有問題的,然而adb命令里還有一些是實時返回結(jié)果的,比如輸出手機(jī)日志的命令logcat,結(jié)果會不斷的打印出來當(dāng)前的設(shè)備操作日志信息內(nèi)容,這種類型的命令我們在python中如果需要獲取打印結(jié)果,如果還是用read方法的話,等待結(jié)果的返回時間會非常長,這里我們就要換一種方法讀取結(jié)果,寫法如下。
import subprocess order='adb logcat' pi= subprocess.Popen(order,shell=True,stdout=subprocess.PIPE) for i in iter(pi.stdout.readline,'b'): print I
這樣的打印效果,如同cmd里操作一致,實時的打印出日志信息。這里我們就用到了readline方法,其實這種寫法類似我們讀取文件,單行讀取和全部內(nèi)容讀取。因為目前pyapp的框架已經(jīng)基本寫完了,所以有了寫這篇文章的想法,分享一些python在處理adb命令上的一些心得,就目前來看python在調(diào)用adb命令上區(qū)別主要就是這兩點,最終目的是我們找到需要的功能命令獲取結(jié)果數(shù)據(jù),然后再去通過python處理這些返回數(shù)據(jù),實現(xiàn)自動化測試的目的。大家要用好adb命令,還要注意一點的是每條命令的各種參數(shù)的搭配使用,比如pyapp的實現(xiàn)是支持多設(shè)備連接的,那么我們在針對某個手機(jī)進(jìn)行adb命令操作時,就需要帶上-s 加設(shè)備號,表示操作的具體設(shè)備否則命令會報錯。
比如我們針對一個設(shè)備去進(jìn)行點擊操作,命令的寫法應(yīng)該是這樣:adb -s 49dsd4554wdsa shell input tap 600 900,其中‘49dsd4554wdsa'是設(shè)備號,‘600 900'點擊屏幕坐標(biāo)。所以可以看到增加了-s之后就可以很方便的同時操作多臺設(shè)備。
到此這篇關(guān)于python中adb有什么功能的文章就介紹到這了,更多相關(guān)python adb功能詳解內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python開發(fā)App基礎(chǔ)操作API使用示例過程
這篇文章主要為大家介紹了python開發(fā)App基礎(chǔ)操作API使用的示例過程有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2021-10-10使用torchtext導(dǎo)入NLP數(shù)據(jù)集的操作
這篇文章主要介紹了使用torchtext導(dǎo)入NLP數(shù)據(jù)集的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-05-05Python簡單實現(xiàn)自動刪除目錄下空文件夾的方法
這篇文章主要介紹了Python簡單實現(xiàn)自動刪除目錄下空文件夾的方法,涉及Python針對文件與目錄的讀取、判斷、刪除等相關(guān)操作技巧,需要的朋友可以參考下2017-08-08快速掌握python權(quán)限功能設(shè)計實戰(zhàn)指南
在處理權(quán)限控制時,裝飾器能幫助我們以一種統(tǒng)一且簡潔的方式管理不同用戶對系統(tǒng)資源的訪問權(quán)限,本文將通過幾個簡單的示例逐步展示如何利用Python裝飾器實現(xiàn)從基礎(chǔ)到復(fù)雜的權(quán)限控制功能2024-01-01transform python環(huán)境快速配置方法
經(jīng)常在數(shù)據(jù)開發(fā)中需要搞udf,最近發(fā)現(xiàn)transform更加方便易用,但是經(jīng)常會涉及到集群python版本不一、包不全或者部分機(jī)器上沒有安裝python。這篇文章主要介紹了transform python環(huán)境快速配置方法,需要的朋友可以參考下2018-09-09python實現(xiàn)大學(xué)人員管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了python實現(xiàn)大學(xué)人員管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-10-10python 統(tǒng)計列表中不同元素的數(shù)量方法
今天小編就為大家分享一篇python 統(tǒng)計列表中不同元素的數(shù)量方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-06-06