1. 程式人生 > 程式設計 >python中adb有什麼功能

python中adb有什麼功能

ADB是Android SDK中的一個工具,使用ADB可以直接操作管理Android模擬器或者真實的Andriod裝置。

ADB主要功能有:

1、在Android裝置上執行Shell(命令列)

2、管理模擬器或裝置的埠對映

3、在計算機和裝置之間上傳/下載檔案

4、將電腦上的本地APK軟體安裝至Android模擬器或裝置上

python有兩種方式去呼叫adb命令,一種是os.system(),一種是os.popen()。

兩者的區別就是前者無法獲取到返回值,後者可以獲取到返回值。

os.popen()返回的是file物件,可以直接利用read()方法讀取。

內容擴充套件:

python如何呼叫adb命令

Python中執行cmd命令可以用到os和subprocess兩個模組。區別在於os是阻塞式的,subprocess是非阻塞式的,所以我們使用subprocess是比較適合的。接下來我先舉一個查詢連線裝置的命令來看看python中怎麼樣的寫法。用到的命令為 adb devices。

import subprocess
order='adb devices' #獲取連線裝置
pi= subprocess.Popen(order,shell=True,stdout=subprocess.PIPE)
print pi.stdout.read() #列印結果

實際列印結果,可以看到當前電腦連線了三臺裝置。這裡需要再說明一下adb devices 命令的結果返回是一次性的,所以我們用read方法讀取資料是沒有問題的,然而adb命令裡還有一些是實時返回結果的,比如輸出手機日誌的命令logcat,結果會不斷的打印出來當前的裝置操作日誌資訊內容,這種型別的命令我們在python中如果需要獲取列印結果,如果還是用read方法的話,等待結果的返回時間會非常長,這裡我們就要換一種方法讀取結果,寫法如下。

import subprocess
order='adb logcat'
pi= subprocess.Popen(order,stdout=subprocess.PIPE)
for i in iter(pi.stdout.readline,'b'):
print I

這樣的列印效果,如同cmd裡操作一致,實時的打印出日誌資訊。這裡我們就用到了readline方法,其實這種寫法類似我們讀取檔案,單行讀取和全部內容讀取。因為目前pyapp的框架已經基本寫完了,所以有了寫這篇文章的想法,分享一些python在處理adb命令上的一些心得,就目前來看python在呼叫adb命令上區別主要就是這兩點,最終目的是我們找到需要的功能命令獲取結果資料,然後再去通過python處理這些返回資料,實現自動化測試的目的。大家要用好adb命令,還要注意一點的是每條命令的各種引數的搭配使用,比如pyapp的實現是支援多裝置連線的,那麼我們在針對某個手機進行adb命令操作時,就需要帶上-s 加裝置號,表示操作的具體裝置否則命令會報錯。

比如我們針對一個裝置去進行點選操作,命令的寫法應該是這樣:adb -s 49dsd4554wdsa shell input tap 600 900,其中‘49dsd4554wdsa'是裝置號,‘600 900'點選螢幕座標。所以可以看到增加了-s之後就可以很方便的同時操作多臺裝置。

到此這篇關於python中adb有什麼功能的文章就介紹到這了,更多相關python adb功能詳解內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!