Android中微信抢红包插件原理解析和开发实现
一、前言
自從去年中微信添加搶紅包的功能,微信的電商之旅算是正式開始正式火爆起來。但是作為Android開發(fā)者來說,我們?cè)趽尲t包的同時(shí)意識(shí)到了很多問題,就是手動(dòng)去搶紅包的速度慢了,當(dāng)然這些有很多原因?qū)е铝?。或許是網(wǎng)絡(luò)的原因,而且這個(gè)也是最大的原因。但是其他的不可忽略的因素也是要考慮到進(jìn)去的,比如在手機(jī)充電鎖屏的時(shí)候,我們并不知道有人已經(jīng)開始發(fā)紅包了,那么這時(shí)候也是讓我們喪失了一大批紅包的原因。那么關(guān)于網(wǎng)絡(luò)的問題,我們開發(fā)者可能用相關(guān)技術(shù)無法解決(當(dāng)然在Google和Facebook看來的話,他們的理想是能夠在任何地方都能連接互聯(lián)網(wǎng),當(dāng)然在偏遠(yuǎn)的農(nóng)村也是,不過我們期待他們有一天能夠普及開來。到時(shí)候才是真正的互聯(lián)網(wǎng))。扯得有點(diǎn)遠(yuǎn)了。我們回歸到正題,今天我們來看看使用技術(shù)來解決其他非網(wǎng)絡(luò)問題。在充電鎖屏的時(shí)候也可以自動(dòng)幫我們搶紅包。而且你要知道,機(jī)器搶紅包的準(zhǔn)確率是100%的,這個(gè)也許就是人和機(jī)器的區(qū)別。那么保證搶得準(zhǔn)確率是100%的話,那就依賴于我們高效準(zhǔn)確的算法實(shí)現(xiàn)了。下面就來看看原理實(shí)現(xiàn)。
當(dāng)去年我看到搶紅包那么火爆的時(shí)候,當(dāng)時(shí)作為一個(gè)開發(fā)者心里是多么渴望開發(fā)一個(gè)插件出來,可是當(dāng)時(shí)我們能想到的就是使用:
adb shell monkey
命令去模擬點(diǎn)擊屏幕,但是那種方式有一個(gè)問題就是是無頭緒的盲目點(diǎn)擊,所以幾乎會(huì)出現(xiàn)誤點(diǎn),點(diǎn)擊成功率極其低下。所以當(dāng)時(shí)就沒有想到其他方法了,因?yàn)樽罱隽擞嘘P(guān)輔助功能相關(guān)的工作的時(shí)候,那么就發(fā)現(xiàn)這個(gè)功能可以用于搶紅包。
其實(shí)現(xiàn)在我們可以去各大市場(chǎng)搜索一下看到,有很多搶紅包的插件了。當(dāng)然我們并不是用于商業(yè)化,這里只是來解析一下原理。我們會(huì)發(fā)現(xiàn)那些插件都有一個(gè)共同的特點(diǎn)是:第一步都是引導(dǎo)用戶去開啟輔助功能。
二、原理解析
關(guān)于輔助功能(AccessibilityService),如果又不了解的同學(xué)可以去Google一下,這個(gè)功能其實(shí)很有用的,但是他的出現(xiàn)的出發(fā)點(diǎn)是給那些肢體上有障礙的人使用的,比如手指不健全的用戶,怎么才能滑動(dòng)屏幕,然后打開一個(gè)應(yīng)用呢?那么輔助功能就是干這些事,他的功能其實(shí)就是可以概括兩句話:
第一、尋找到我們想要的View節(jié)點(diǎn)
第二、然后模擬點(diǎn)擊,實(shí)現(xiàn)特定功能
我們知道Android中的View體系是一個(gè)樹形結(jié)構(gòu),那么每一個(gè)View就是一個(gè)節(jié)點(diǎn)。所以我們可以查找到指定的節(jié)點(diǎn),那么我們?cè)撊绾尾檎业轿覀兿胍墓?jié)點(diǎn)呢?這里我們先看一下輔助功能(AccessibilityService)的用法
第一步、我們需要集成AccessibilityService類
我們需要自定一個(gè)Service然后繼承AccessibilityService,當(dāng)然還需要在AndroidManifest.xml中聲明這個(gè)服務(wù):
總結(jié)
以上是生活随笔為你收集整理的Android中微信抢红包插件原理解析和开发实现的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Deepin 下安装 LAMP
- 下一篇: java虚方法和抽象方法_虚方法和抽象方