亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python腳本利用adb進(jìn)行手機(jī)控制的方法

 更新時(shí)間:2019年07月08日 14:18:59   作者:那時(shí)的小鎮(zhèn)  
這篇文章主要介紹了Python腳本利用adb進(jìn)行手機(jī)控制的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

一.  adb 相關(guān)命令:

  1. 關(guān)閉adb服務(wù):adb kill-server
  2. 啟動(dòng)adb服務(wù)  adb start-server
  3. 查詢當(dāng)前運(yùn)行的所有設(shè)備  adb devices
  4. 可能在adb中存在多個(gè)虛擬設(shè)備運(yùn)行 可以指定虛擬設(shè)備運(yùn)行  -s 虛擬設(shè)備名稱
  5. 重啟設(shè)備 adb reboot  --指定虛擬設(shè)備   adb -s 設(shè)備名稱 reboot
  6. 查看日志  adb logcat  清除日志 adb logcat -c
  7. 進(jìn)入linux shell下  adb shell 其中常用的linux命令  cd  cat 等等 輸入su可以獲取超級(jí)管理員名稱了 要確定是否有哪些命令 進(jìn)入 system/bin目錄 就知道了
   8. 傳入文件到設(shè)備中 adb push 本地文件 遠(yuǎn)程目錄  

  9. 從設(shè)備中拷貝文件到本地  adb -s emulator-5556 pull /data/config.ini d:/

  10. 顯示當(dāng)前運(yùn)行的全部模擬器:
      adb devices

  1 安裝應(yīng)用程序:
      adb install -r 123.apk

  12. 獲取模擬器中的文件:
      adb pull <remote> <local>

  13. 向模擬器中寫(xiě)文件:
      adb push <local> <remote>

  14. 進(jìn)入模擬器的shell模式:
      adb shell

  15. 卸載apk包:
        adb shell
        cd data/app
        rm 123.apk
       exit
        adb uninstall 123.apk
        adb install -r 123.apk

  16. 查看adb命令幫助信息:
        adb help
  17. 刪除系統(tǒng)應(yīng)用:
        adb remount (重新掛載系統(tǒng)分區(qū),使系統(tǒng)分區(qū)重新可寫(xiě))。
        adb shell
        cd system/app
        rm 123.apk

  18. 獲取管理員權(quán)限:
        adb root

  19、復(fù)制文件:
       復(fù)制一個(gè)文件或目錄到設(shè)備:
       adb push <source> <destination></destination></source>
        如:adb push update.zip /sdcard/
       從設(shè)備上復(fù)制一個(gè)文件或目錄:
       adb pull <source> <destination></destination></source>
       如:adb pull /sdcard/update.zip.

  20、取得當(dāng)前運(yùn)行設(shè)備的實(shí)例的列表及每個(gè)實(shí)例的狀態(tài):
      adb devices

  21:adb shell input tap
      這條命令模擬Android手機(jī)在屏幕坐標(biāo)(X,Y)處進(jìn)行了點(diǎn)擊操作。

   22:adb shell input swipe 

       這條命令模擬Android手機(jī)從屏幕坐標(biāo)(X1,Y1)滑動(dòng)到坐標(biāo)(X2,Y2)的操作。

  23、uiautomator dump   dump: creates an XML dump of current UI hierarchy 這個(gè)命令是用來(lái)成成當(dāng)前界面的UI層次,并用XML格式進(jìn)行展示 。這樣就可以獲取各個(gè)組件的位置了

   注:如果PC要想同時(shí)控制多臺(tái)Android手機(jī),必須在adb 后面添加-s

  例如:adb -s 13b6e4c4 shell input tap 400 400

  表示對(duì)13b6e4c4這臺(tái)Android手機(jī)進(jìn)行在屏幕上(400,400)坐標(biāo)位置進(jìn)行模擬的點(diǎn)擊事件。

  24.   能看到設(shè)備信息就代表設(shè)備已經(jīng)連接成功了,接下來(lái)的命令就是adb install 路徑+包名.apk

例如我的安裝包放在桌面,那么命令就是adb install C:\Users\hyh\Desktop\XXX.apk

*** adb shell uiautomator dump /mnt/sdcard/window_dump.xml 獲得手機(jī)當(dāng)前界面的UI信息,生成window_dump.xml
*** adb shell input text “123” 輸入text

舉例:

     1、打開(kāi)cmd,進(jìn)入到當(dāng)前文件夾中,輸入命令 adb devices 查看當(dāng)前與電腦連接的設(shè)備(前提是,手機(jī)打開(kāi)usb調(diào)試模式),可以查看已連接成功的手機(jī)。

    2、 若手機(jī)成功連接,輸入命令 adb shell input tap 100 100 , 表示點(diǎn)擊屏幕上坐標(biāo)為(100,100)的點(diǎn),如果不知道需要點(diǎn)擊的點(diǎn)的具體位置的話可以在手機(jī)開(kāi)發(fā)者模式中設(shè)置。

二. adb 模擬按鍵:

1. 比如使用 adb shell input keyevent <keycode> 命令,不同的 keycode 能實(shí)現(xiàn)不同的功能,完整的 keycode 列表詳見(jiàn) KeyEvent,摘引部分我覺(jué)得有意思的如下:

keycode 含義
3 HOME 鍵
4 返回鍵
5 打開(kāi)撥號(hào)應(yīng)用
6 掛斷電話
24 增加音量
25 降低音量
26 電源鍵
27 拍照(需要在相機(jī)應(yīng)用里)
64 打開(kāi)瀏覽器
82 菜單鍵
85 播放/暫停
86 停止播放
87 播放下一首
88 播放上一首
122 移動(dòng)光標(biāo)到行首或列表頂部
123 移動(dòng)光標(biāo)到行末或列表底部
126 恢復(fù)播放
127 暫停播放
164 靜音
176 打開(kāi)系統(tǒng)設(shè)置
187 切換應(yīng)用
207 打開(kāi)聯(lián)系人
208 打開(kāi)日歷
209 打開(kāi)音樂(lè)
210 打開(kāi)計(jì)算器
220 降低屏幕亮度
221 提高屏幕亮度
223 系統(tǒng)休眠
224 點(diǎn)亮屏幕
231 打開(kāi)語(yǔ)音助手
276 如果沒(méi)有 wakelock 則讓系統(tǒng)休眠

2. input 命令的一些用法舉例

 電源鍵

 命令:

adb shell input keyevent 26

執(zhí)行效果相當(dāng)于按電源鍵。

 菜單鍵

 命令:

adb shell input keyevent 82

 HOME 鍵
 命令:

adb shell input keyevent 3

返回鍵
命令:

adb shell input keyevent 4

音量控制
增加音量:

adb shell input keyevent 24

降低音量:

adb shell input keyevent 25

靜音:

adb shell input keyevent 164

媒體控制

播放/暫停:

adb shell input keyevent 85

停止播放:

adb shell input keyevent 86

播放下一首:

adb shell input keyevent 87

播放上一首:

adb shell input keyevent 88

恢復(fù)播放:

adb shell input keyevent 126

暫停播放:

adb shell input keyevent 127

點(diǎn)亮/熄滅屏幕

可以通過(guò)上文講述過(guò)的模擬電源鍵來(lái)切換點(diǎn)亮和熄滅屏幕,但如果明確地想要點(diǎn)亮或者熄滅屏幕,那可以使用如下方法。

點(diǎn)亮屏幕:

adb shell input keyevent 224

熄滅屏幕:

adb shell input keyevent 223

三、使用python腳本自動(dòng)運(yùn)行cmd 命令

 在adb文件夾下建立一個(gè)python文件

import os
os.system('adb shell input tap 100 100');

運(yùn)行腳本,發(fā)現(xiàn)與在命令行輸入相同語(yǔ)句有同樣的效果。

2、也可以使用subprocess.Popen,最簡(jiǎn)單使用方式如下,設(shè)置shell=True,就不會(huì)彈出cmd框

process = subprocess.Popen('adb shell input tap 14 1402',shell=True)

程序?qū)嵗?nbsp;

#coding:utf-8
#程序功能:可以實(shí)現(xiàn)抖音個(gè)人頁(yè)面視頻的自動(dòng)點(diǎn)擊,從而自動(dòng)增加訪問(wèn)量
#思路:抖音主頁(yè)中兩個(gè)視頻切換點(diǎn)擊,可以實(shí)現(xiàn)訪問(wèn)量的增加
#使用ADB程序,視頻的屏幕坐標(biāo)可以使用adb shell uiautomator dump命令,獲取該頁(yè)面xml源碼后查得
#下述是小米MIX2抖音主頁(yè)第一個(gè)視頻和第二個(gè)視頻的坐標(biāo)位置
#缺點(diǎn):運(yùn)行時(shí)不能移動(dòng)屏幕,后續(xù)可以采用獲取模塊ID號(hào)的方式去點(diǎn)擊相應(yīng)的位置
import time
import subprocess
i = 0
#每次操作的間隔時(shí)間取決于手機(jī)配置,配置越高時(shí)間越短
sleep_time = 0.5 
while 1:
  #用popen設(shè)置shell=True不會(huì)彈出cmd框
  process = subprocess.Popen('adb shell input tap 14 1402',shell=True)
  time.sleep(sleep_time)
  process = subprocess.Popen('adb shell input keyevent KEYCODE_BACK', shell=True)
  time.sleep(sleep_time)
  process = subprocess.Popen('adb shell input tap 375 1402', shell=True)
  time.sleep(sleep_time)
  process = subprocess.Popen('adb shell input keyevent KEYCODE_BACK', shell=True)
  time.sleep(sleep_time)
  #os.system('adb shell input tap 14 1402')
  #os.system('adb shell input keyevent KEYCODE_BACK')
  #os.system('adb shell input tap 375 1402')
  i+=1
  print str(i) + 'clicks have been completed' 

 實(shí)現(xiàn)原理

Hierarchy Viewer:獲得當(dāng)前手機(jī)實(shí)時(shí)的UI信息,方便用于手機(jī)的自動(dòng)化測(cè)試;

python中的subprocess.Popen() 或 Python os模塊:調(diào)用系統(tǒng)命令;

uiautomator工具:獲取界面控件信息;

adb命令:對(duì)手機(jī)進(jìn)行操作;

 以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論