• adb模拟操作之event


    首语:

      我们都知道,adb可以对模拟器和root过的真机进行很多操作,例如:模拟点击,输入,截图,手机和PC,数据互传等。这篇要说的就是adb操作模拟器或者真机的输入输出。

    0x01 问题

      使用adb进行模拟长按鼠标或者长按某个按钮,坐标?

    0x02 遍历资料(互联网取资料)

      网上找了一下资料,基本都是需要跟event相关的,例如:/dev/input/event0 X X X; /dev/input/event3 Y Y Y。

      一般都是input keyevent后面带参数或者是sendevent /dev/input/...这样的形式。

      思考了一下,资料也说,应该是跟使用的android设备有关系,模拟器,真机,TV等都是不一样的,真机和真机之间也有可能不一样。

      最后确定了一个,按照网上的思路,先用getevent进行捕获事件,然后在用sendevent进行发送操纵。突然让我想到了,window消息机制不就是这样么?

      我们在window下模拟操作的时候,有时候也是需要借助spy++工具,进行捕获消息,然后模拟Send,Post消息的。

    0x03 测试结果

      于是,在真实加上,排除各种情况,只进行相关的那么一点点操作,其他操作都不进行。比如:长按,就只是长按,任何移动都不出现。然后得到的消息内容。

      不过得到的内容是16进制的值。在使用adb进行发送的时候,需要转化成10进制的。

    0x04 结论和思考

      测试,确实操作成功了。

      /dev/input/event应该是作为一个操作系统(android)的驱动器一样的存在。而输入的input有很多种(键盘,鼠标,手柄,遥控器等),不同的驱动,对应不同的动作,所以就会有很多种输入方式了。所以,凡事还是要思考,学而不思则罔,思而不学则殆。

    0x05 附录

      参考资料:http://blog.csdn.net/mad1989/article/details/38109689

      参考资料:http://blog.csdn.net/liu_zhen_wei/article/details/12559277

      参考资料:http://blog.csdn.net/chen969097157/article/details/52351228

  • 相关阅读:
    SQL2005四个排名函数(row_number、rank、dense_rank和ntile)的比较
    LINQ to List泛型的几种简单查询
    sql语句精选
    C#利用QrCode.Net生成二维码(Qr码)
    LINQ to XML CRUD,并且封装为DAL方法
    vim编辑器
    去年的烟花特别多……
    年初七
    活死人黎明 Dawn of the Dead
    在碟片里奔驰我的看碟人生
  • 原文地址:https://www.cnblogs.com/Supperlitt/p/7884436.html
Copyright © 2020-2023  润新知