辅助功能设计初衷在于帮助残障用户使用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
接下来就进入拆字页面了,按照上面的分析逻辑便可完成,很少讲了,你们本身实现