1. 程式人生 > >Android中微信搶紅包外掛原理解析和開發實現

Android中微信搶紅包外掛原理解析和開發實現

一、前言

自從去年中微信新增搶紅包的功能,微信的電商之旅算是正式開始正式火爆起來。但是作為Android開發者來說,我們在搶紅包的同時意識到了很多問題,就是手動去搶紅包的速度慢了,當然這些有很多原因導致了。或許是網路的原因,而且這個也是最大的原因。但是其他的不可忽略的因素也是要考慮到進去的,比如在手機充電鎖屏的時候,我們並不知道有人已經開始發紅包了,那麼這時候也是讓我們喪失了一大批紅包的原因。那麼關於網路的問題,我們開發者可能用相關技術無法解決(當然在Google和Facebook看來的話,他們的理想是能夠在任何地方都能連線網際網路,當然在偏遠的農村也是,不過我們期待他們有一天能夠普及開來。到時候才是真正的網際網路)。扯得有點遠了。我們迴歸到正題,今天我們來看看使用技術來解決其他非網路問題。在充電鎖屏的時候也可以自動幫我們搶紅包。而且你要知道,機器搶紅包的準確率是100%的,這個也許就是人和機器的區別。那麼保證搶得準確率是100%的話,那就依賴於我們高效準確的演算法實現了。下面就來看看原理實現。

當去年我看到搶紅包那麼火爆的時候,當時作為一個開發者心裡是多麼渴望開發一個外掛出來,可是當時我們能想到的就是使用:

adb shell monkey

命令去模擬點選螢幕,但是那種方式有一個問題就是是無頭緒的盲目點選,所以幾乎會出現誤點,點選成功率極其低下。所以當時就沒有想到其他方法了,因為最近做了有關輔助功能相關的工作的時候,那麼就發現這個功能可以用於搶紅包。

其實現在我們可以去各大市場搜尋一下看到,有很多搶紅包的外掛了。當然我們並不是用於商業化,這裡只是來解析一下原理。我們會發現那些外掛都有一個共同的特點是:第一步都是引導使用者去開啟輔助功能

二、原理解析

關於輔助功能(AccessibilityService),如果又不瞭解的同學可以去Google一下,這個功能其實很有用的,但是他的出現的出發點是給那些肢體上有障礙的人使用的,比如手指不健全的使用者,怎麼才能滑動螢幕,然後開啟一個應用呢?那麼輔助功能就是幹這些事,他的功能其實就是可以概括兩句話:

第一、尋找到我們想要的View節點

第二、然後模擬點選,實現特定功能

我們知道Android中的View體系是一個樹形結構,那麼每一個View就是一個節點。所以我們可以查詢到指定的節點,那麼我們該如何查詢到我們想要的節點呢?這裡我們先看一下輔助功能(AccessibilityService)的用法

第一步、我們需要整合AccessibilityService類

我們需要自定一個Service然後繼承AccessibilityService,當然還需要在AndroidManifest.xml中宣告這個服務:

相關推薦

Android紅包外掛原理解析開發實現

一、前言自從去年中微信新增搶紅包的功能,微信的電商之旅算是正式開始正式火爆起來。但是作為Android開發者來說,我們在搶紅包的同時意識到了很多問題,就是手動去搶紅包的速度慢了,當然這些有很多原因導致了。或許是網路的原因,而且這個也是最大的原因。但是其他的不可忽略的因素也是要

AccessibilityService2016終極解決方案包括(紅包外掛原理解析開發實現

一、前言 自從去年中微信新增搶紅包的功能,微信的電商之旅算是正式開始正式火爆起來。但是作為Android開發者來說,我們在搶紅包的同時意識到了很多問題,就是手動去搶紅包的速度慢了,當然這些有很多原因導致了。或許是網路的原因,而且這個也是最大的原因。但是其他的不可忽略的因

原始碼探索系列0---紅包外掛原理解析

好程式設計師,序號都是從0開始的。哈哈 微信搶紅包外掛 不知道你們還記不記得小米釋出會的時候,把不服跑個分改成搶紅包了,同時演示了一遍。 現在這個是基於他的修改版本,地址在這裡 ,如果你想看下小米搶紅包的原始碼,就點選這裡 接下來講解其中一種實現 ,但

Android紅包助手的實現

package com.cxk.redpacket; import android.accessibilityservice.AccessibilityService; import android.app.Instrumentation; import android.app.KeyguardManage

Android紅包助手的實現(程式碼整理)

實現原理   通過利用AccessibilityService輔助服務,監測螢幕內容,如監聽狀態列的資訊,螢幕跳轉等,以此來實現自動拆紅包的功能。關於AccessibilityService輔助服務,可以自行百度瞭解更多。 程式碼基礎: 1.首先宣告一個RedPac

紅包外掛Android輔助功能

      逢年過節大家都少不了發微信紅包,通過微信紅包來表達祝福。同時,微信還有拼手氣群紅包。各種群好友群,親戚群,工作群逢年過節常常會有紅包可搶。搶紅包的口訣是:“網速要好,手速要快”。搶到紅包固然欣喜,搶不到紅包的失落和遺憾的感覺卻讓人非常不爽。有時等紅包

Android進階——學習AccessibilityService實現紅包外掛

前言 在你的手機更多設定或者高階設定中,我們會發現有個無障礙的功能,很多人不知道這個功能具體是幹嘛的,其實這個功能是為了增強使用者介面以幫助殘障人士,或者可能暫時無法與裝置充分互動的人們 它的具體實現是通過AccessibilityService服務執行

仿紅包(js 轉)

lis new ner check p s .config put get none <!DOCTYPE html> <html> <head> <meta charset="UTF-8">

紅包算法

nmon ins money can scanner clas lose tint ring 微信搶紅包算法: package test;import java.util.Random;import java.util.Scanner;public class WeXi

紅包的演算法實現(C++)

目前只能實現對於整數的錢數的紅包的實現,經過隨機數從而實現隨機人搶紅包的演算法 /* vs 2013 wk */ #include<iostream> #include&l

紅包的架構設計

微信紅包的架構設計簡介 @來源於QCon某高可用架構群整理,整理by朱玉華。 背景:有某個朋友在朋友圈諮詢微信紅包的架構,於是乎有了下面的文字(有誤請提出,謝謝) 概況:2014年微信紅包使用資料庫硬抗整個流量,2015年使用cache抗流量。 微信的金額什麼時候

js實現紅包

金額隨機:額度在0.01和(剩餘平均值*2)之間。 /** * 搶紅包 * @param {[number]} totalAmount [總金額] * @param {[number]}

紅包遊戲繞過指定尾數

最近朋友推薦玩微信紅包賭博遊戲,大概的意思就是你搶到了制定尾數的紅包,你就要給那個人發相同數量的金額。比如你發紅包的時候這邊寫10/2或者10.....2等等的寫法,就表示發了10塊錢,指定尾數是2,

紅包演算法

package com.das.controller; import java.util.Random; public class Test { public static void main(

java紅包簡易版

微信搶紅包簡易版,比較簡單,大夥別見笑,拿去直接用 import java.math.BigDecimal; import java.util.Random; public class CatchMoney { public static void main(Str

android、朋友圈分享無回撥的問題

如果在您的專案中集成了微信或者微信朋友圈,並且您需要準確的分享回撥,則需要在AndroidManifest.xml中下注冊下面的回撥Activity。 <activity android:name=".wxapi.WXEntryActivity

Android仿開啟紅包動畫(逐幀動畫)

Frame Animation(逐幀動畫):        逐幀動畫(Frame-by-frame Animations)從字面上理解就是一幀挨著一幀的播放圖片,就像放電影一樣。和補間動畫一樣可以通過xml實現也可以通過java程式碼實現。接下來藉助目前專案中的一個開

一步一步實現紅包

  聖誕過後,又到了搶紅包的季節。各個公司的年會將逐漸展開,各個紅包群就熱鬧了起來。為了應對領導在群裡時不時的一個紅包,寫一個搶紅包的應用迫在眉睫了。之前由於沒有自動搶紅包錯失了100RMB+的紅包啊!   先來整理下思路。要實現搶紅包,那麼就要在紅包來的時候

android支付!! 其實沒那麼難

最近這段時間在做微信支付,把一些開發的流程及遇到的一些問題記錄下來,以後遇到的話也能做個參考!畢竟剛接觸這個支付的時候也是走了好多彎路。 首先第一步肯定是要去申請你的公眾號,服務號各種的。。。 如果一

淺談最近的扣扣、紅包背後的故事

double total=10000;     //紅包金額總數         int num=100;       //紅包總數         double money;      //個人得到紅包裡的金額         double safe_total=50;     //只要紅包沒搶完,每人至少