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