史上最詳細的微信搶紅包詳解

一.技術背景

輔助功能設計初衷在於幫助殘障用戶使用android設備和應用,在後臺運行,能夠監聽用戶界面的一些狀態轉換,例如頁面切換、焦點改變、通知、Toast等,並在觸發AccessibilityEvents時由系統接收回調。後來被開發者另闢蹊徑,用於一些插件開發,好比微信紅包助手,還有一些須要監聽第三方應用的插件。android

二.原理及實現

原理

大體簡述一下,谷歌已經在View、ViewGroup、TextView等控件的文字改變、滑動、UI變化埋下了接口,當這些狀態變化時控件會回調系統API,API系統而後對這些對象的數據進行組裝,爲了數據的安全性,系統會從新建立一些對象(AccessibilityEvent、AccessibilityNodeInfo)來間接保存這些數據,而後經過跨進程將這些數據返回給對應的Service中。shell

具體實現

第一步:實現AccessibilityService 新建service並繼承AccessibilityService,實現父類的兩個方法onInterrupt(),//中斷訪問回調onAccessibilityEvent() //狀態變化回調 第二步:配置AccessibilityService安全

第三步:讓用戶打開輔助功能權限 微信

三. 帶你分析如何監聽微信紅包

三個方面

如何監聽消息通知欄

判斷通知欄是否有紅包 markdown

如何點擊聊天列表紅包


所需分享工具工具

1.uiautomatorviewer.bat幫助咱們獲取屏幕中的控件,並使用腳本操做 這個地址我本地的是C:\Users\Administrator\AppData\Local\Android\Sdk\tools\bin\uiautomatorviewer.bat 你們根據本身的sdk位置查找ui

2.adb adb shell dumpsys window |findstr mCurrent 幫助會的當前微信頁面的類名spa

下面的方法能夠查找某個id節點 插件

接下來就能夠偷摸幹事情了 1.查找包含微信紅包字樣的節點,利用uiautomatorviewer找到id 2.自動點擊該節點,進入聊天頁 設計

如何查找聊天頁紅包

得到聊天頁紅包框id

接下來就進入拆字頁面了,按照上面的分析邏輯便可完成,很少講了,你們本身實現

相關文章
相關標籤/搜索