测试demo主要使用了Android 的无障碍辅助服务(AccessibilityService),主要注意是
1、 开启服务,绑定目标app的监听(demo中根据包命绑定了体积计算的app),需要在系统设置中无障碍服务打开服务,demo会在MainActivity中判断服务状态,若没打开自动跳转到设置界面,点击打开服务即可,详情见MainActivity的onResume方法
2、 监听被测app的界面,获取到我们需要模拟点击的控件,找到控件的方式有两种,一是根据控件上的文字,二是根据控件的id,这两种方式我们demo中都有用到。文字获取见AutoTestService中的onAccessibilityEvent,onAccessibilityEvent是监听被测app的事件回调,通过handleEvent(event, "返回"):List unintall_nodes = info.findAccessibilityNodeInfosByText(nodeText);,我们可以找到“返回”按键,从而可以对该按键进行模拟点击。控件id查找方法,首先我们需要找到我们的目的控件的id,借助Android的monitor工具,在Android的sdk的tools下有这个工具:
找到我们需要点击的控件的id后可以在事件中找到目标id,进行模拟点击。
3、 机制是一直监听app的变化状态,延时点击,其他功能或逻辑可以自行设计。
网友评论