最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python腳本利用adb進行手機控制的方法

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

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

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

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

  10. 顯示當前運行的全部模擬器:
      adb devices

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

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

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

  14. 進入模擬器的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ū)重新可寫)。
        adb shell
        cd system/app
        rm 123.apk

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

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

  20、取得當前運行設(shè)備的實例的列表及每個實例的狀態(tài):
      adb devices

  21:adb shell input tap
      這條命令模擬Android手機在屏幕坐標(X,Y)處進行了點擊操作。

   22:adb shell input swipe 

       這條命令模擬Android手機從屏幕坐標(X1,Y1)滑動到坐標(X2,Y2)的操作。

  23、uiautomator dump   dump: creates an XML dump of current UI hierarchy 這個命令是用來成成當前界面的UI層次,并用XML格式進行展示 。這樣就可以獲取各個組件的位置了

   注:如果PC要想同時控制多臺Android手機,必須在adb 后面添加-s

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

  表示對13b6e4c4這臺Android手機進行在屏幕上(400,400)坐標位置進行模擬的點擊事件。

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

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

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

舉例:

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

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

二. adb 模擬按鍵:

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

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

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

 電源鍵

 命令:

adb shell input keyevent 26

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

 菜單鍵

 命令:

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

點亮/熄滅屏幕

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

點亮屏幕:

adb shell input keyevent 224

熄滅屏幕:

adb shell input keyevent 223

三、使用python腳本自動運行cmd 命令

 在adb文件夾下建立一個python文件

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

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

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

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

程序?qū)嵗?nbsp;

#coding:utf-8
#程序功能:可以實現(xiàn)抖音個人頁面視頻的自動點擊,從而自動增加訪問量
#思路:抖音主頁中兩個視頻切換點擊,可以實現(xiàn)訪問量的增加
#使用ADB程序,視頻的屏幕坐標可以使用adb shell uiautomator dump命令,獲取該頁面xml源碼后查得
#下述是小米MIX2抖音主頁第一個視頻和第二個視頻的坐標位置
#缺點:運行時不能移動屏幕,后續(xù)可以采用獲取模塊ID號的方式去點擊相應(yīng)的位置
import time
import subprocess
i = 0
#每次操作的間隔時間取決于手機配置,配置越高時間越短
sleep_time = 0.5 
while 1:
  #用popen設(shè)置shell=True不會彈出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' 

 實現(xiàn)原理

Hierarchy Viewer:獲得當前手機實時的UI信息,方便用于手機的自動化測試;

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

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

adb命令:對手機進行操作;

 以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • python3實現(xiàn)簡單飛機大戰(zhàn)

    python3實現(xiàn)簡單飛機大戰(zhàn)

    這篇文章主要為大家詳細介紹了python3實現(xiàn)簡單飛機大戰(zhàn),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-11-11
  • pytorch自定義二值化網(wǎng)絡(luò)層方式

    pytorch自定義二值化網(wǎng)絡(luò)層方式

    今天小編就為大家分享一篇pytorch自定義二值化網(wǎng)絡(luò)層方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • 詳解python中DRF框架的數(shù)據(jù)校驗方式

    詳解python中DRF框架的數(shù)據(jù)校驗方式

    這篇文章主要為大家詳細介紹了python中DRF框架的數(shù)據(jù)校驗方式,文中的示例代碼講解詳細,具有一定的學習價值,感興趣的小伙伴可以跟隨小編一起了解一下
    2023-10-10
  • Python Matplotlib繪制動畫的代碼詳解

    Python Matplotlib繪制動畫的代碼詳解

    使用matplotlib可以很容易地創(chuàng)建動畫框架。在本文中我們就將利用Matplotlib制作幾個簡單的動畫,文中的示例代碼講講詳細,感興趣的可以了解下
    2022-05-05
  • Python使用eval函數(shù)執(zhí)行動態(tài)標表達式過程詳解

    Python使用eval函數(shù)執(zhí)行動態(tài)標表達式過程詳解

    這篇文章主要介紹了Python使用eval函數(shù)執(zhí)行動態(tài)標表達式過程詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-10-10
  • Python7個爬蟲小案例詳解(附源碼)下篇

    Python7個爬蟲小案例詳解(附源碼)下篇

    這篇文章主要介紹了Python7個爬蟲小案例詳解(附源碼)上篇,本文章內(nèi)容詳細,通過案例可以更好的理解爬蟲的相關(guān)知識,七個例子分為了三部分,本次為下篇,共有三道題,需要的朋友可以參考下
    2023-01-01
  • Python去除圖片水印實現(xiàn)方法詳解

    Python去除圖片水印實現(xiàn)方法詳解

    這篇文章主要為大家詳細介紹了如何利用Python實現(xiàn)處理圖片水印的相關(guān)資料,主要是實現(xiàn)圖片水印的去除效果,感興趣的小伙伴可以嘗試一下
    2023-01-01
  • 用C++封裝MySQL的API的教程

    用C++封裝MySQL的API的教程

    這篇文章主要介紹了用C++封裝MySQL的API的教程,包括對語句拼裝器SQLJoin的介紹,需要的朋友可以參考下
    2015-05-05
  • Python+selenium實現(xiàn)趣頭條的視頻自動上傳與發(fā)布

    Python+selenium實現(xiàn)趣頭條的視頻自動上傳與發(fā)布

    本文主要介紹了通過Python+selenium實現(xiàn)趣頭條的短視頻自動上傳與發(fā)布功能,同時支持抖音、快手、b站、小紅書等平臺的視頻自動化同步發(fā)布。需要的朋友可以參考一下
    2021-12-12
  • python多線程的線程如何安全實現(xiàn)

    python多線程的線程如何安全實現(xiàn)

    在本篇文章里小編給大家整理了一篇關(guān)于python多線程的線程如何安全實現(xiàn)的內(nèi)容,有興趣的朋友們可以學習參考下。
    2021-08-08

最新評論

万山特区| 磴口县| 华坪县| 自治县| 化德县| 山西省| 棋牌| 阳原县| 平山县| 汾阳市| 满城县| 图木舒克市| 蒙城县| 古蔺县| 个旧市| 宁南县| 临桂县| 焦作市| 台安县| 乌拉特后旗| 资兴市| 朝阳县| 大理市| 仁布县| 嘉鱼县| 阜阳市| 成安县| 丰都县| 河曲县| 宜宾市| 本溪市| 苍溪县| 水富县| 聊城市| 乌什县| 隆安县| 神木县| 祁门县| 凤山县| 元江| 河池市|