Robot: 一个记录和回放Android input event(touch)的工具

该工具旨在记录Android屏幕上的触摸操作,并进行回放,适用于稳定性测试和复现难以重现的bug。通过读取并记录/dev/input下的事件,然后在回放时将事件写回相应节点。由于Android L启用PIE导致原有工具失效,因此作者重新编写了此程序。程序使用C++模板处理map和vector,包含记录和回放事件的主要功能,以及处理不同文件描述符与文件名映射的数据结构。
摘要由CSDN通过智能技术生成

这个工具的主要目的就是记录屏幕上的各种操作,然后多次回放,用于稳定性测试和一些需要多次重复才能复现的bug的重现。

代码在以下位置:

       http://download.csdn.net/detail/dfysy/8479123

之前,别人转发我一个记录/回放 event的程序,在KK以前都是可以用的,但是由于Android L enable了PIE(positionindependent execution), 在L上没法用了。又没有源码,只能自己再写一个。

程序的原理:

       就是读取/dev/input下面的所有event输入,把他们都记录下来,然后在回放的时候在一个一个的写回去。记录的信息除了input_event的内容外,还需要记录该event是从哪一个input节点读入的,因为回放的时候需要知道这个event应该写入哪一个节点。

由于input_event里面记录的event发生时间和实际读取的时间会有差异,会导致回放的时候计算两个event之间的时间差出现错误(负值)。最好的设计应该是对所有读出的event再根据发生时间进行排序。但是为了简化设计,此处直接记录读取event的墙钟时间,这样虽然不同input节点间的时间关系可能有偏差。但是同一个input节点直接的顺序还是正确的。

程序的主要风格是C和C++的混合体,之所以使用C++,主要是因为使用了template处理map和vector,这样就不用使用C语言费力巴哈的去实现相关的插入查找的算法,目的是快速,不是较劲。

主要的数据结构和功能:

       map<string,int> fileName2fd; /*input filenameàinput fd

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值