概述
Accessibility Service被广泛用于各类自动点击的app,但早期,它并没有提供丰富的API,受到控件的高度约束,能达成的效果与Instrumentation相去甚远。
Android 7.0中,AccessibilityService新加入了dispatchGesture API,开发者可以使用它在屏幕上进行高度定制化的操作,例如点击屏幕上的任意坐标。
网络上已经有大量对performAccessibilityAction相关API的源码分析,但很多人对dispatchGesture知之甚少。因此我对它的调用路径稍作分析,以便于开发和对抗。
对每个部分的源代码,我会附上AOSP的源码链接和关键代码的截图。
源码分析
入口函数:AccessibilityService::dispatchGesture
(AccessibilityService.java)
调用逻辑:
connection在此处初始化:
dispatchGesture方法通过Binder调用sendGesture方法。
该connection对象定义在IAcce