android serviceconnection 码源分析,Android 7.0以上Accessibility Service DispatchGesture调用流程...

本文详细分析了Android 7.0及以上版本中AccessibilityService的dispatchGesture API的工作原理,从入口函数AccessibilityService::dispatchGesture开始,探讨了其调用流程,包括Binder通信、AccessibilityInputFilter、InputManagerService等关键步骤,帮助开发者理解和利用这一功能进行高度定制化的屏幕操作。
摘要由CSDN通过智能技术生成

概述

Accessibility Service被广泛用于各类自动点击的app,但早期,它并没有提供丰富的API,受到控件的高度约束,能达成的效果与Instrumentation相去甚远。

Android 7.0中,AccessibilityService新加入了dispatchGesture API,开发者可以使用它在屏幕上进行高度定制化的操作,例如点击屏幕上的任意坐标。

网络上已经有大量对performAccessibilityAction相关API的源码分析,但很多人对dispatchGesture知之甚少。因此我对它的调用路径稍作分析,以便于开发和对抗。

对每个部分的源代码,我会附上AOSP的源码链接和关键代码的截图。

源码分析

入口函数:AccessibilityService::dispatchGesture

(AccessibilityService.java)

调用逻辑:0941aca27ddb3090107d9fb703ed9969.png

connection在此处初始化:f599c3b0253ca9d4648a7a83eb7582eb.png

dispatchGesture方法通过Binder调用sendGesture方法。

该connection对象定义在IAcce

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值