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

利用adb shell和node.js實(shí)現(xiàn)抖音搶紅包功能(推薦)

 更新時(shí)間:2018年02月22日 11:26:51   作者:Violet-Jack  
這篇文章主要介紹了利用adb shell和node.js實(shí)現(xiàn)抖音搶紅包功能,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下

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

  1. 點(diǎn)擊屏幕中央,如果有紅包打開(kāi)紅包,沒(méi)有紅包則暫停視頻。
  2. 點(diǎn)擊返回按鈕,如果有紅包關(guān)閉紅包界面,沒(méi)有紅包提示再按一次退出(其實(shí)沒(méi)退出)。
  3. 進(jìn)行上滑操作,進(jìn)入下一個(gè)視頻。

點(diǎn)擊、返回、上滑,就這么三步行為,無(wú)論有紅包沒(méi)紅包都成立,只要計(jì)算好時(shí)間就行。

代碼

下面是一段 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()

打開(kāi)手機(jī)的開(kāi)發(fā)者模式,啟動(dòng) USB調(diào)試 ,如果是小米請(qǐng)另外打開(kāi) USB調(diào)試(安全設(shè)置) 。連接手機(jī),打開(kāi)抖音主界面。將這個(gè)js保存到本地,使用node執(zhí)行即可。

$ node touch.js

如果發(fā)現(xiàn)抖音每20秒上滑一次,說(shuō)明成功啦~

原理

類(lèi)似使用 adb shell 來(lái)操作手機(jī)的文章還有操作跳一跳等,下面說(shuō)下原理。

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

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

adb shell

adb 是電腦連接手機(jī)的開(kāi)發(fā)工具,所有電腦對(duì)手機(jī)的操作其實(shí)都是adb 完成的,包括各種手機(jī)助手幫你裝 APP 也是。 PS:做了這么久手機(jī),今天才發(fā)現(xiàn)這個(gè)好玩的功能……汗……

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

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

更多按鍵對(duì)應(yīng)值可以看 Android keyevent 對(duì)應(yīng)的值 通過(guò)這些命令我們可以對(duì)手機(jī)進(jìn)行一些簡(jiǎn)單操作啦~

最后

這其實(shí)是個(gè)很簡(jiǎn)單的邏輯,但是給我很多啟發(fā),以后再有什么簡(jiǎn)單的操作就可以使用adb和node來(lái)重復(fù)執(zhí)行啦~ 最后吐槽下:抖音的紅包真的少,昨天刷了3個(gè)小時(shí)就幾毛錢(qián),不夠電費(fèi)的說(shuō)。就當(dāng)娛樂(lè)吧~

PS:下面介紹下Android keyevent 對(duì)應(yīng)的值

Android keyevent 中的各個(gè)值,在使用adb shell input 的時(shí)候用得到。

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*focus
KEYCODE_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;

好了,內(nèi)容就介紹這么多。

到此這篇關(guān)于利用adb shell和node.js實(shí)現(xiàn)抖音搶紅包功能(推薦)的文章就介紹到這了,更多相關(guān)node.js adb shell 搶紅包內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 基于 Docker 開(kāi)發(fā) NodeJS 應(yīng)用

    基于 Docker 開(kāi)發(fā) NodeJS 應(yīng)用

    這是兩篇文章的第一篇。本文涵蓋了有關(guān)在使用 Express 框架開(kāi)發(fā)一個(gè)Node應(yīng)用時(shí),用Docker 替代 Vagrant 的比較詳細(xì)的教程, 應(yīng)用將使用 connect-redis 中間件將會(huì)話(huà)信息持久化到Redis中. 第二篇文章將介紹到將這個(gè)開(kāi)發(fā)的設(shè)置產(chǎn)品化.
    2014-07-07
  • iPhone手機(jī)上搭建nodejs服務(wù)器步驟方法

    iPhone手機(jī)上搭建nodejs服務(wù)器步驟方法

    這篇文章主要介紹了iPhone手機(jī)上搭建nodejs服務(wù)器步驟方法,本文給出了詳細(xì)的操作步驟以及操作命令,需要的朋友可以參考下
    2015-07-07
  • 詳解Nodejs內(nèi)存治理

    詳解Nodejs內(nèi)存治理

    本篇文章給大家分享了Nodejs內(nèi)存處理相關(guān)的知識(shí)點(diǎn)以及實(shí)例代碼分享,有興趣的朋友跟著學(xué)習(xí)下。
    2018-05-05
  • Node.js圖片驗(yàn)證碼識(shí)別功能

    Node.js圖片驗(yàn)證碼識(shí)別功能

    現(xiàn)在越來(lái)越多的網(wǎng)站采取圖片驗(yàn)證碼,防止機(jī)器惡意向服務(wù)端發(fā)送請(qǐng)求,但是常規(guī)的圖片驗(yàn)證碼也不是非常安全了,有非常多第三方庫(kù)可以對(duì)圖片上的數(shù)字文字等進(jìn)行識(shí)別,下面小編給大家分享Node.js圖片驗(yàn)證碼識(shí)別功能實(shí)現(xiàn),感興趣的朋友一起看看吧
    2024-04-04
  • 關(guān)于express與koa的使用對(duì)比詳解

    關(guān)于express與koa的使用對(duì)比詳解

    很多人都在問(wèn)到底該用Koa還是express,所以下面這篇文章就來(lái)給大家再次的對(duì)比了關(guān)于express與koa的相關(guān)資料,通過(guò)對(duì)比大家可以更好的進(jìn)行選擇,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-01-01
  • node.js使用mongoose操作數(shù)據(jù)庫(kù)實(shí)現(xiàn)購(gòu)物車(chē)的增、刪、改、查功能示例

    node.js使用mongoose操作數(shù)據(jù)庫(kù)實(shí)現(xiàn)購(gòu)物車(chē)的增、刪、改、查功能示例

    這篇文章主要介紹了node.js使用mongoose操作數(shù)據(jù)庫(kù)實(shí)現(xiàn)購(gòu)物車(chē)的增、刪、改、查功能,結(jié)合實(shí)例形式詳細(xì)分析了node.js使用mongoose框架操作MongoDB數(shù)據(jù)實(shí)現(xiàn)購(gòu)物車(chē)增刪改查相關(guān)技巧與使用注意事項(xiàng),需要的朋友可以參考下
    2019-12-12
  • 你一定會(huì)收藏的Nodejs代碼片段

    你一定會(huì)收藏的Nodejs代碼片段

    Nodejs值得收集的代碼片段,大家可以收藏起來(lái),運(yùn)用到之后的工作中,感興趣的小伙伴們可以參考一下
    2016-02-02
  • 淺析node連接數(shù)據(jù)庫(kù)(express+mysql)

    淺析node連接數(shù)據(jù)庫(kù)(express+mysql)

    Node是一個(gè)Javascript運(yùn)行環(huán)境(runtime)。實(shí)際上它是對(duì)Google V8引擎進(jìn)行了封裝。V8引 擎執(zhí)行Javascript的速度非??欤阅芊浅:?。Node對(duì)一些特殊用例進(jìn)行了優(yōu)化,提供了替代的API,使得V8在非瀏覽器環(huán)境下運(yùn)行得更好
    2015-11-11
  • Node.js中child_process實(shí)現(xiàn)多進(jìn)程

    Node.js中child_process實(shí)現(xiàn)多進(jìn)程

    這篇文章主要介紹了Node.js中child_process實(shí)現(xiàn)多進(jìn)程,需要的朋友可以參考下
    2015-02-02
  • 教你如何在Node.js中使用jQuery

    教你如何在Node.js中使用jQuery

    本文給大家分享的是如何在Node.js中使用jQuery的方法,包含步驟以及出錯(cuò)的處理,非常的詳細(xì),有需要的小伙伴可以參考下
    2016-08-08

最新評(píng)論