邏輯很簡單,在抖音視頻播完之后如果是紅包視頻,會跳出紅包。 我們模擬邏輯如下:
點擊、返回、上滑,就這么三步行為,無論有紅包沒紅包都成立,只要計算好時間就行。
代碼
下面是一段 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個小時就幾毛錢,不夠電費的說。就當娛樂吧~
新聞熱點
疑難解答
圖片精選