您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關如何用Python操控手機APP,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
最近經常看到用Python操作手機APP的項目,例如抖音、閑魚之類的,看完后發現這些項目無一例外需要部署ADB環境。至于什么是ADB,很多大神都講過,只是寫得比較專業,我等菜鳥看完還是云里霧里。
為了使沒有安卓開發經驗的人也能快速學會用Python操作手機APP,我從Android SDK部署、ADB基礎應用、Python操作手機等方面入手寫了這篇文章,目的是使大家對ADB的使用有一個直觀的認識,這樣在玩上面提到的這些項目時會更輕松一些。
事先聲明:本文涉及的各類操作可能有多種實現方法,我只會提及其中一種,而且我采取的方法很有可能不是最優的方法。
1.Android SDK下載和部署
說起Android SDK工具,那還真是不少,有SDK Tools、SDK、Platform-tools等等,這里我推薦SDK Tools,進入https://www.androiddevtools.cn/這個網站可以看到下圖中的界面,選擇自己對應的系統版本(zip版)下載。
將下載后的文件解壓縮,運行其中的SDK Manager.exe文件,進入Packages安裝管理界面,對于新手朋友們我建議直接使用默認選項,然后點擊右下角的 Install XX packages 按鈕,整個下載安裝過程大概需要幾十分鐘,具體時間跟個人網速有關。
接著就是配置環境變量了,把android-sdk目錄下的platform-tools和tools文件夾添加到系統變量中,這一步屬于常規操作,我就不再演示了。
執行完以上步驟,ADB環境就算配置完畢了,之后要做的就是開啟手機的開發者選項、開啟USB調試、用usb線將手機跟電腦鏈接。
下面進入關鍵的一步——通過ADB測試手機是否連接成功。進入系統終端,輸入adb devices指令,如果出現下圖中的結果,就說明剛才的環境部署成功了,其中device前面的是連接的設備號。
如果連接測試不成功,例如找不到設備或者設備連接不上,可以依次嘗試關閉并再次開始調試、重啟手機、重啟電腦、插拔USB線等操作,通常都可以解決。
2.ADB的一些基本操作
雖說是基本操作,但ADB的命令也還是挺多的,說多了大家一時也難以消化。所以我這里只列舉幾個操作手機APP常用的指令,都是一些基本的操作。
1).顯示所有包名
adbshellpmlistpackages
這個指令會羅列出手機已經安裝的所有應用包的名稱,如果后綴加上參數-s,則會列出所有的系統應用的名稱(下圖),而加上后綴參數-3則會列出所有第三方應用名稱。
2).顯示活動程序
adbshelldumpsys activity activities
這個指令能夠獲取到當前手機系統中正在運行的程序包的名稱,例如當我在手機中啟動小米手機的“游戲中心”,運行上述指令就會獲取到下圖中的信息:
圖中realActivity后面的參數就是當前正在運行的Activity名稱,稍微留意一下就會發現,這個名稱相比上面的包名稱要更加詳細一些,至于這個名稱有什么用,我們馬上就會提到。
3).啟動應用程序
adbshellamstart -n 要啟動的應用Activity名稱
這里所使用的Activity名稱就是剛才獲取到的realActivity后面的參數,使用這個指令時要注意,啟動APP一定要使用上一條命令獲取到的Activity名稱,不能使用adb shell pm list packages命令獲取到的包名稱。例如,我們如果要啟動小米的游戲中心,可以使用命令:
adbshellamstart -ncom.xiaomi.gamecenter/.ui.MainTabActivity
而如果使用了下面這條命令是無法順利啟動應用的:
adbshellamstart -ncom.xiaomi.gamecenter
4).停止應用程序
adb shell am force-stop 要停止的應用名稱
這條指令會強制停止指定的應用程序,跟程序的啟動略有差別,在停止應用時,使用adb shell pm list packages命令獲取到的包名稱就可以了。還是以小米的游戲中心為例,停止應用使用以下指令:
adbshellamforce-stopcom.xiaomi.gamecenter
5).點擊指定位置
adbshellinputtapxy
這條指令就很好理解了,模擬點擊手機屏幕中的某個位置,(x,y)是對應的位置坐標。在ADB中默認手機屏幕的左上角坐標是(0,0),右下角坐標是(xmax,ymax)。
這里強調一點:使用模擬點擊功能必須設置手機允許通過USB調試修改權限或點擊模擬,下文中的滑動手機屏幕、輸入文字信息等功能也需要進行同樣設置。
6).滑動手機屏幕
adbshellinputswipe x_start y_start x_end y_end
這條指令的本質是使得坐標為(x_start, y_start)的點移動到(x_end, y_end)的坐標位置,以此來實現屏幕滑動的效果。
7).輸入文字信息
adbshellinputtext 需要輸入的字符
這條指令沒什么好說明的,選定對應位置,然后輸入對應的字符即可。
8).模擬手機按鍵
adbshellinputkeyeventX
現在的大部分手機除了常規鍵盤字符以外還有一些特殊按鍵,例如HOME鍵、音量+/-,以及軟鍵盤中有時會出現的確認鍵等等,這些按鍵的模擬就可以通過上面這條指令來實現。
其中X對應的是特殊鍵的編號,下面舉幾個常用的例子(其他的特殊鍵還有很多):
3對應的是HOME鍵
24對應的是音量+
25對應的是音量-
66對應的是確認鍵
9).獲取元素位置
細心的朋友現在可能會發現,上面提到的一些關于模擬點擊、模擬輸入的命令,都涉及到手機元素定位的問題,那么我們在實踐中如何確定具體的坐標位置和元素信息呢?這里我提議使用uiautomatorviewer.bat這個工具,它會隨著SDK Tools一起安裝,就在tools目錄下。
來看下面這幅圖,手機連接成功后,點擊左上角的綠色圖標就會獲取到手機的當前頁面信息,然后在屏幕左側可以點選任意位置或者元素,相關信息會在右側屏幕中顯示。
是不是感覺跟用chrome分析網頁非常類似,有了這些信息,再使用上面提到的幾款指令操作手機就不是問題了。
3.Python操控手機App
1).命令行操控
前面講了ADB操控手機的一些基本操作,只有理論未免太枯燥,現在我們做個小試驗來看看效果。
我們還是以小米的游戲中心為例,使用ADB依次完成以下任務:
切換到“網游”選項卡,指令:adb shell input tap 400 263
選中搜索欄,指令:adb shell input tap 776 139
輸入“wangzherongyao”,指令:adb shell input text wangzherongyao
點擊確認鍵,指令:adb shell input keyevent 66
進入王者榮耀游戲頁面,指令:adb shell input tap 600 500
2).Python腳本操控
從上面的演示視頻看,使用ADB操作手機APP還算比較成功,但是如果像剛才那樣逐條輸入指令,可能還不如直接操作手機來的方便,那么我們就需要借助Python腳本使其批量化、自動化運行。
Python執行終端指令可以借助os.system()函數,我們來看下面這段代碼:
上面代碼所實現的功能跟我們之前演示的基本一樣,主要增加了一個打開游戲中心的操作、簡化了一些中間步驟。
看完上述內容,你們對如何用Python操控手機APP有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。