1.前言
adb是個好東西,可以通過提供的座標模擬點擊手機屏幕的相應位置.像以前很火的"跳一跳"就是通過adb實現自動跳躍.在手機使用按鍵精靈的腳本其實原理也都大同小異,確定座標-點擊-延時這幾步.
ps.腳本只要不是惡意腳本,例如用於遊戲中的刷材料經驗,或是多次點擊刷數據的行爲,編寫腳本,釋放雙手,還是挺滋潤的.
2.介紹
今天是狗羣主生日,羣員要求羣主發紅包.但是羣主手上就只剩下可憐的幾十塊飯錢,面對這麼多號羣員,怎樣才能滿足他們呢?
1.紅包數量要足
2.紅包次數要多
3.紅包的金額要高(樓主沒有錢,這條不聽羣員的)
聰明的羣主想到了每次發紅包的總金額設置1元,紅包個數10個,發30次.那這樣總共的紅包金額=1x30=30元,總的紅包個數卻高達10x30=300個,這樣就實現滿足羣友的需求.
3.步驟
(1)設置-系統-關於手機-版本號點擊7次開啓開發者選項
(2)系統-開發者選項-開啓USB調試
(3)下載adb
,百度網盤下載
(4)解壓並打開文件夾,運行shell.bat
,輸入adb devices
,之後會開啓守護進程,最後顯示
表示adb開啓成功.
(5)測試: 輸入命令adb shell input tap 100 100
,如果手機屏幕有反應了,那就可以開始寫腳本啦~
(6)定位
adb shell input tap x y
,其實就是在屏幕[x,y]
進行了一次點擊.準確的定位可以在開發者選項中開啓
1.按鈕回顯:顯示點按操作反饋
2.位置顯示:指針位置
當點擊或拖動時,就會在上方顯示座標x,y,根據座標就能進行定位了
(7)確認流程
只要熟悉了點擊按鈕的邏輯,先按什麼,再按什麼就能完成一次發紅包操作了,然後循環30遍就能發完所有的紅包.
首先讓手機停留在這個頁面,作爲每次操作的主頁面,
然後點擊紅包
輸入第一個總金額,輸入第二個紅包個數,輸入後點擊塞錢進紅包
最後輸入密碼,等待一點時間就發送完畢,回到主頁面,完成了一次操作.
(8)編寫腳本
from os import system
import time
def tap(x, y):
system(r"cd /d E:\adb\ && adb shell input tap {} {}".format(x, y))
rep = [
# [座標x , 座標y , 完成該步操作後等待時間t]
[145, 1569, 0.3], # 點擊紅包
[794, 274, 0.3], # 點擊總金額
[180, 1305, 0.1], # 1元
[759, 535, 0.3], # 點擊紅包個數
[865, 1287, 0.1], # 3
[559, 1833, 0.3], # 0
[491, 1161, 0.1], # 關閉輸入法
[555, 1245, 0.5], # 塞錢進紅包
# 此處輸入六位密碼完成發送(這裏以123456爲例)
[180, 1305, 0.1], # 1
[507, 1280, 0.1], # 2
[860, 1270, 0.1], # 3
[100, 1472, 0.1], # 4
[480, 1490, 0.1], # 5
[840, 1480, 0.1] # 6
]
if __name__ == '__main__':
for times in range(30): # 發30次
for i in rep:
x = i[0]
y = i[1]
t = i[2]
tap(int(x), int(y))
time.sleep(t) # 動態緩衝時間
4.寫在最後
最後羣主被羣員圍毆死了,全文完.