如何写一个自动抢微信红包的程序

      春节临近,为避免错失土豪们的红包,动手写了一个自动抢微信红包的小程序,试了一下效果还不错。本程序适用于安卓4.1版本以上手机,不需要ROOT权限。现将程序的设计要点记录如下,供有兴趣的同行参考。

一、基本原理

目前网上已经有很多款自动抢红包软件,其基本原理都是一致的,都是实现一个Accessibility Service(即“辅助服务”),捕捉手机的通知栏变动事件、窗口切换事件、窗口内容变动事件,在收到微信红包通知消息时自动转到微信页面,搜索到红包节点,模拟点击操作。抢到红包后,再搜索“拆红包”节点,打开红包,取出红包金额。

由于一个完整的发现红包、抢红包、拆红包流程需要10秒左右,而各种事件是以毫秒级的速度在不断触发,因此此类程序的核心问题是维护好一个全局的抢红包状态转换图,处理好各个事件处理任务的并发控制和相互协调,避免因状态走错而导致程序运行不稳定的情况。

二、主要流程

自动抢红包动作由两种场景触发:(1)发现一个微信红包消息通知;(2)在当前微信聊天页面发现一个新红包。两种场景的处理流程大体一致,现将新通知消息触发的抢红包流程说明如下。

 

三、状态转换

鉴于整个抢红包流程耗时较长,本程序维护了一个全局的状态变量(供有七种状态),以控制任务流程,同时维护了一个全局的等待队列,以存放在此期间到达的新红包。对于由新通知消息触发的抢红包流程&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值