国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

利用adb shell和node.js實現抖音自動搶紅包功能(推薦)

2019-11-19 14:20:16
字體:
來源:轉載
供稿:網友

邏輯很簡單,在抖音視頻播完之后如果是紅包視頻,會跳出紅包。 我們模擬邏輯如下:

  1. 點擊屏幕中央,如果有紅包打開紅包,沒有紅包則暫停視頻。
  2. 點擊返回按鈕,如果有紅包關閉紅包界面,沒有紅包提示再按一次退出(其實沒退出)。
  3. 進行上滑操作,進入下一個視頻。

點擊、返回、上滑,就這么三步行為,無論有紅包沒紅包都成立,只要計算好時間就行。

代碼

下面是一段 node.js 代碼:

touch.js

var process = require('child_process');function exec(shell) { process.exec(shell,function (error, stdout, stderr) { if (error !== null) {  console.log('exec error: ' + error); } });}function click() { console.log('click') exec(`adb shell input tap 400 600`) setTimeout(back, 1000)}function swipe() { console.log('swipe') exec(`adb shell input swipe 400 800 400 0 500`) setTimeout(click, 20000)}function back() { console.log('back') exec(`adb shell input keyevent 4`) setTimeout(swipe, 1000)}swipe()

打開手機的開發者模式,啟動 USB調試 ,如果是小米請另外打開 USB調試(安全設置) 。連接手機,打開抖音主界面。將這個js保存到本地,使用node執行即可。

$ node touch.js

如果發現抖音每20秒上滑一次,說明成功啦~

原理

類似使用 adb shell 來操作手機的文章還有操作跳一跳等,下面說下原理。

child_process.exec(command[, options][, callback])

該方法功能為衍生一個 shell,然后在 shell 中執行 command,且緩沖任何產生的輸出。具體可以看參考文檔 其實就是等于執行腳本,shell命令了。 我們利用它來執行 adb shell 命令。

adb shell

adb 是電腦連接手機的開發工具,所有電腦對手機的操作其實都是adb 完成的,包括各種手機助手幫你裝 APP 也是。 PS:做了這么久手機,今天才發現這個好玩的功能……汗……

adb shell 可以裝apk、看手機信息、操作手機文件、模擬點擊行為等功能,是非常強大的。我們這里主要是要模擬點擊行為 adb shell input 。 下面羅列下各功能:

// 輸入文本 content$ adb shell input text “hello” // 點擊返回按鈕 keynumber$ adb shell input keyevent 4// 點擊屏幕某個點 x y$ adb shell input tap 400 400// 滑動 x1 y1 x2 y2 time$ adb shell input swipe 400 800 400 0 500// 下面三個不太清楚,再研究$ adb shell input press$ adb shell input roll$ adb shell input tmode

更多按鍵對應值可以看 Android keyevent 對應的值 通過這些命令我們可以對手機進行一些簡單操作啦~

最后

這其實是個很簡單的邏輯,但是給我很多啟發,以后再有什么簡單的操作就可以使用adb和node來重復執行啦~ 最后吐槽下:抖音的紅包真的少,昨天刷了3個小時就幾毛錢,不夠電費的說。就當娛樂吧~

PS:下面介紹下Android keyevent 對應的值

Android keyevent 中的各個值,在使用adb shell input 的時候用得到。

KEYCODE_UNKNOWN=0;KEYCODE_SOFT_LEFT=1;KEYCODE_SOFT_RIGHT=2;KEYCODE_HOME=3;KEYCODE_BACK=4;KEYCODE_CALL=5;KEYCODE_ENDCALL=6;KEYCODE_0=7;KEYCODE_1=8;KEYCODE_2=9;KEYCODE_3=10;KEYCODE_4=11;KEYCODE_5=12;KEYCODE_6=13;KEYCODE_7=14;KEYCODE_8=15;KEYCODE_9=16;KEYCODE_STAR=17;KEYCODE_POUND=18;KEYCODE_DPAD_UP=19;KEYCODE_DPAD_DOWN=20;KEYCODE_DPAD_LEFT=21;KEYCODE_DPAD_RIGHT=22;KEYCODE_DPAD_CENTER=23;KEYCODE_VOLUME_UP=24;KEYCODE_VOLUME_DOWN=25;KEYCODE_POWER=26;KEYCODE_CAMERA=27;KEYCODE_CLEAR=28;KEYCODE_A=29;KEYCODE_B=30;KEYCODE_C=31;KEYCODE_D=32;KEYCODE_E=33;KEYCODE_F=34;KEYCODE_G=35;KEYCODE_H=36;KEYCODE_I=37;KEYCODE_J=38;KEYCODE_K=39;KEYCODE_L=40;KEYCODE_M=41;KEYCODE_N=42;KEYCODE_O=43;KEYCODE_P=44;KEYCODE_Q=45;KEYCODE_R=46;KEYCODE_S=47;KEYCODE_T=48;KEYCODE_U=49;KEYCODE_V=50;KEYCODE_W=51;KEYCODE_X=52;KEYCODE_Y=53;KEYCODE_Z=54;KEYCODE_COMMA=55;KEYCODE_PERIOD=56;KEYCODE_ALT_LEFT=57;KEYCODE_ALT_RIGHT=58;KEYCODE_SHIFT_LEFT=59;KEYCODE_SHIFT_RIGHT=60;KEYCODE_TAB=61;KEYCODE_SPACE=62;KEYCODE_SYM=63;KEYCODE_EXPLORER=64;KEYCODE_ENVELOPE=65;KEYCODE_ENTER=66;KEYCODE_DEL=67;KEYCODE_GRAVE=68;KEYCODE_MINUS=69;KEYCODE_EQUALS=70;KEYCODE_LEFT_BRACKET=71;KEYCODE_RIGHT_BRACKET=72;KEYCODE_BACKSLASH=73;KEYCODE_SEMICOLON=74;KEYCODE_APOSTROPHE=75;KEYCODE_SLASH=76;KEYCODE_AT=77;KEYCODE_NUM=78;KEYCODE_HEADSETHOOK=79;KEYCODE_FOCUS=80;//*Camera*focusKEYCODE_PLUS=81;KEYCODE_MENU=82;KEYCODE_NOTIFICATION=83;KEYCODE_SEARCH=84;KEYCODE_MEDIA_PLAY_PAUSE=85;KEYCODE_MEDIA_STOP=86;KEYCODE_MEDIA_NEXT=87;KEYCODE_MEDIA_PREVIOUS=88;KEYCODE_MEDIA_REWIND=89;KEYCODE_MEDIA_FAST_FORWARD=90;KEYCODE_MUTE=91;

好了,內容就介紹這么多。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 湘潭市| 敖汉旗| 清丰县| 桑植县| 张家港市| 乐平市| 乌恰县| 图们市| 海宁市| 清新县| 吉木乃县| 四子王旗| 阳山县| 鄱阳县| 云梦县| 肥西县| 嵊州市| 东乌珠穆沁旗| 紫阳县| 呼伦贝尔市| 富宁县| 宁津县| 军事| 商城县| 浦城县| 仲巴县| 长寿区| 虹口区| 织金县| 河北省| 壶关县| 廊坊市| 宣化县| 城市| 大英县| 封开县| 朝阳区| 梨树县| 双峰县| 美姑县| 韶关市|